- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试重现 MapReduce 设计模式 一书中的Bloom Filtering 示例。
在下文中,我将仅展示感兴趣的代码:
public static class BloomFilteringMapper extends Mapper<Object, Text, Text, NullWritable>
{
private BloomFilter filter = new BloomFilter();
protected void setup( Context context ) throws IOException
{
URI[] files = DistributedCache.getCacheFiles( context.getConfiguration() );
String path = files[0].getPath();
System.out.println( "Reading Bloom Filter from: " + path );
DataInputStream strm = new DataInputStream( new FileInputStream( path ) );
filter.readFields( strm );
strm.close();
}
//...
}
public static void main( String[] args ) throws Exception
{
Job job = new Job( new Configuration(), "description" );
URI uri = new URI("hdfs://localhost:9000/user/draxent/comment.bloomfilter");
DistributedCache.addCacheFile( uri, job.getConfiguration() );
//...
}
当我尝试执行它时,我收到以下错误:
java.io.FileNotFoundException:/user/draxent/comment.bloomfilter
但是执行命令:
bin/hadoop fs -ls
我可以看到文件:
-rw-r--r-- 1 draxent supergroup 405 2015-11-25 17:12 /user/draxent/comment.bloomfilter
所以我很确定问题出在线路上:
URI uri = new URI("hdfs://localhost:9000/user/draxent/comment.bloomfilter");
但是我尝试了几种不同的配置,比如:
“hdfs://user/draxent/comment.bloomfilter”
“/user/draxent/comment.bloomfilter”
“comment.bloomfilter”
而且没有人工作。
我试着抬头看 cfeduke implementation , 但我无法解决我的问题。
回复评论:
最佳答案
分布式缓存 API 已被弃用。
您可以使用新的 API 扩展相同的功能。查看此处的文档:http://hadoop.apache.org/docs/stable2/api/org/apache/hadoop/mapreduce/Job.html
在驱动程序代码中:-
作业作业=新作业();
...
job.addCacheFile(新路径(文件名).toUri());
在映射器设置方法中:-
Path[] localPaths = context.getLocalCacheFiles();
关于java - Hadoop MapReduce DistributedCache 使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33922318/
我可以使用 DistributedCache 访问单个文件,但无法访问存档。在主要方法中,我将存档添加为 DistributedCache.addCacheArchive(new Path("/sto
在 Hadoop 作业中,我正在映射多个 XML 文件并为每个元素过滤 ID (from -tags) .因为我想将作业限制在一组特定的 ID 中,所以我读入了一个大文件(2.7 GB 中大约有 2.
DistributedCache 的文档状态: Its efficiency stems from the fact that the files are only copied once per j
当我运行 hadoop 代码添加第三个 jar 时,就像下面的代码: public static void addTmpJar(String jarPath, JobConf conf) throws
我正在使用 hadoop DistributedCache,但我遇到了一些麻烦。我的 hadoop 处于伪分布式模式。 from here we can see in pseudo-distribut
使用较新的 Hadoop API 从 DistributedCache 读取文件的好方法是什么?我已将文件放在 DistributedCache 中,在我的驱动程序代码中包含以下行: Distribu
我正在尝试在 AWS 上运行 KMeans,但在尝试从 DistributedCache 读取更新的集群质心时遇到了以下异常: java.io.IOException: The distributed
我有一个奇怪的问题,DistributedCache 似乎更改了我的文件的名称,它使用原始名称作为父文件夹并将文件添加为子文件夹。 即文件夹\文件名.ext 变成文件夹\文件名.ext\文件名.ext
Hadoop的DistributedCache文档似乎没有充分描述如何使用分布式缓存。这是给出的示例: // Setting up the cache for the application 1.
与 Apache MRUnit在集群上运行之前,我能够在本地对我的 MapReduce 程序进行单元测试。 我的程序需要读取 DistributedCache所以我将 DistributedCache
当您需要将您的 mapper/reducer 经常使用的少量数据放入 distributedCache 时,DistributedCache 似乎会派上用场。但在某些情况下,您想要放入映射器的数据会非
我正在尝试重现 MapReduce 设计模式 一书中的Bloom Filtering 示例。 在下文中,我将仅展示感兴趣的代码: public static class BloomFilteringM
我有 2 个节点集群 (v1.04),主节点和从节点。在 master 上,在 Tool.run() 中,我们使用 addCacheFile() 将两个文件添加到 DistributedCache。文
2012 年 11 月 21 日更新: 通过将属性 mapred.child.java.opts 设置为 -Xmx512m 解决了问题。在此之前,我在 core-site.xml 中将 HADOOP_
我正在寻找类似于Spark中Hadoop的分布式缓存的功能。我需要一个相对较小的数据文件(具有一些索引值)存在于所有节点中以便进行一些计算。有什么方法可以在 Spark 中实现这一点吗? 到目前为止,
我试图摆脱一些NoClassDefFoundError由于一些 jars运行时找不到。所以我输入了我的hdfs系统一些库,我打电话,我把这个 String lib = "/path/to/lib";
(标题应该是sharded 以反射(reflect) Hadoops shards 其跨多个文件的输出) 我将多个 Hadoop 作业链接在一起。其中一项早期作业生成的输出比其他作业小几个数量级,因此
是否有关于是否使用分布式缓存分发文件的指南? 我有一个大小为 86746785 的文件(我使用 hadoop dfs -dus - 不知道这是 bytes 还是什么)。分发这个文件是个好主意吗? 最佳
我正在尝试将 TreeSet 存储在 DistributedCache 上,以供 Hadoop map-reduce 作业使用。到目前为止,我有以下用于将文件从 HDFS 添加到 Distribute
我正在使用以 yarn 模式运行的 hadoop cdf4.7。 hdfs://test1:9100/user/tagdict_builder_output/part-00000 中有一个 MapFi
我是一名优秀的程序员,十分优秀!