gpt4 book ai didi

hadoop - Hadoop文件读取

转载 作者:行者123 更新时间:2023-12-02 21:45:41 25 4
gpt4 key购买 nike

hadoop 2.2.0中的Hadoop分布式缓存Wordcount示例。
将文件复制到hdfs文件系统中,以在mapper类的设置内部使用。

protected void setup(Context context) throws IOException,InterruptedException 
{
Path[] uris = DistributedCache.getLocalCacheFiles(context.getConfiguration());
cacheData=new HashMap<String, String>();

for(Path urifile: uris)
{
try
{

BufferedReader readBuffer1 = new BufferedReader(new FileReader(urifile.toString()));
String line;
while ((line=readBuffer1.readLine())!=null)
{ System.out.println("**************"+line);
cacheData.put(line,line);
}
readBuffer1.close();
}
catch (Exception e)
{
System.out.println(e.toString());
}
}

}

内部驱动程序主类
    Configuration conf = new Configuration();
String[] otherArgs = new GenericOptionsParser(conf,args).getRemainingArgs();
if (otherArgs.length != 3)
{
System.err.println("Usage: wordcount <in> <out>");
System.exit(2);
}
Job job = new Job(conf, "word_count");
job.setJarByClass(WordCount.class);
job.setMapperClass(Map.class);
job.setReducerClass(Reduce.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
Path outputpath=new Path(otherArgs[1]);
outputpath.getFileSystem(conf).delete(outputpath,true);
FileOutputFormat.setOutputPath(job,outputpath);
System.out.println("CachePath****************"+otherArgs[2]);
DistributedCache.addCacheFile(new URI(otherArgs[2]),job.getConfiguration());
System.exit(job.waitForCompletion(true) ? 0 : 1);

但是得到异常(exception)

java.io.FileNotFoundException:文件:/ home / user12 / tmp / mapred / local / 1408960542382 / cache(无此类文件或目录)

因此缓存功能无法正常工作。
任何的想法 ?

最佳答案

解决了这个问题。
文件位置错误。
现在工作正常。

关于hadoop - Hadoop文件读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25483677/

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