因此,我的map reduce函数在本地vm上运行良好,但在azure上它给了我 Input path not found
错误。我有两组mapper&reducer函数,第一个reducer的输出进入一个temp文件夹,该文件夹是第二个mapper的输入。
FileInputFormat.addInputPath(job, new Path(args[0]));
FileSystem.get(conf).delete(new Path("file:///tmp/inter/"),true);
FileOutputFormat.setOutputPath(job, new Path("file:///tmp/inter/"));
boolean complete = job.waitForCompletion(true);
Job job2 = Job.getInstance(conf, "Q4a");
job2.setJarByClass(Q4a.class);
job2.setMapperClass(TokenizerMapper2.class);
job2.setCombinerClass(CountReducer2.class);
job2.setReducerClass(CountReducer2.class);
job2.setOutputKeyClass(Text.class);
job2.setOutputValueClass(Text.class);
// FileInputFormat.addInputPath(job2, new Path("file:///tmp/inter/part*"));
FileInputFormat.addInputPath(job2, new Path("file:///tmp/inter/"));
FileOutputFormat.setOutputPath(job2, new Path(args[1]));
System.exit(job2.waitForCompletion(true) ? 0 : 1);
第一个mapper&reducer完全执行,然后抛出错误。第58行是粘贴代码中的最后一行,但我相信错误来自临时输入路径?我需要在azure中以不同的方式引用临时文件吗?非常感谢您的帮助,谢谢。
1条答案
按热度按时间ruarlubt1#
好吧,我刚刚解决了这个问题。看起来hdinsight不支持我指定的文件夹结构。我将路径改为简单的“out”,而不是“file:///tmp/inter”,结果成功了。