gpt4 book ai didi

java - Hadoop MapReduce DistributedCache 使用

转载 作者:可可西里 更新时间:2023-11-01 15:30:38 24 4
gpt4 key购买 nike

我正在尝试重现 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.bloomfilte
r

但是执行命令:

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 , 但我无法解决我的问题。

回复评论:

  • ravindra:URI files[0] 包含在 main 中传递的字符串元素;
  • Manjunath Ballur:是的,你是对的。但是由于该文件存在(您可以从 bin/hadoop fs -ls 看到它)这意味着这是传递给 FileInputStream path 的问题em>。但我像往常一样将字符串传递给它。我检查过,路径值是:comment.bloomfilter...所以它必须是正确的。

最佳答案

分布式缓存 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com