azure hdinsight链接mapreduce:输入路径不存在

w6mmgewl  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(322)

因此,我的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中以不同的方式引用临时文件吗?非常感谢您的帮助,谢谢。

ruarlubt

ruarlubt1#

好吧,我刚刚解决了这个问题。看起来hdinsight不支持我指定的文件夹结构。我将路径改为简单的“out”,而不是“file:///tmp/inter”,结果成功了。

相关问题