我们试图获取MapReduce程序在映射器中迭代的输入路径总数。我们将使用这个以及一个计数器来根据索引格式化我们的值。是否有一种简单的方法可以从绘图器中提取总输入路径数?提前致谢。在Hadoop Mapper中获取总输入路径数
0
A
回答
0
您可以通过源代码查看FileInputFormat.getSplits()
- 这将拉回mapred.input.dir
的配置属性,然后将此CSV解析为一组路径。
这些路径仍然可以代表文件夹和正则表达式,因此getSplits()所做的下一件事是将数组传递给受保护的方法org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus(JobContext)
。这实际上是通过dirs/regex列出的,并列出目录/正则表达式匹配文件(如果已配置,也会调用PathFilter
)。
因此,通过保护此方法,您可以创建一个FileInputFormat的简单“虚拟”扩展,该扩展具有listStatus方法,接受Mapper.Context作为参数,然后将调用包装为FileInputFormat.listStatus方法:
public class DummyFileInputFormat extends FileInputFormat {
public List<FileStatus> listStatus(Context mapContext) throws IOException {
return super.listStatus(mapContext);
}
@Override
public RecordReader createRecordReader(InputSplit split,
TaskAttemptContext context) throws IOException,
InterruptedException {
// dummy input format, so this will never be called
return null;
}
}
编辑:事实上,它看起来像FileInputFormat
已经这样做对你来说,在getSplits()方法(至少在1.0.2,大概在0.20推出的最后配置作业属性mapreduce.input.num.files
。 203)
0
您可以使用输入路径的数量在您的作业中设置配置。就像
jobConf.setInt("numberOfPaths",paths.length);
只是把代码放在你配置你的工作的地方。之后,通过从上下文中获取它,将其从Mapper.setup(Mapper.Context context)
中的配置中读出。
相关问题
- 1. 获取输入路径在Hadoop中
- 2. 获取hadoop减速器中的总输入路径
- 3. hadoop - Hadoop jar输入路径问题
- 4. 猪输入路径HDFS Hadoop中
- 5. Hadoop的 - 输入路径不存在
- 6. nutch2.0 Hadoop的输入路径不存在
- 7. hadoop输入路径不存在
- 8. Hadoop,MapReduce - 多输入/输出路径
- 9. Hadoop-> Mapper->如何从给定的输入路径中只读取每个文件中的前N行?
- 10. Hadoop无法识别输入路径
- 11. Hadoop - MapReduce - Mapper输出类型
- 12. Hadoop Mapper类中的参数
- 13. Hadoop从绝对路径和基本路径获取相对路径
- 14. Hadoop Mapper中的依赖注入
- 15. 如何在Xorg中使用Xlib获取输入设备路径?
- 16. Mapper类如何将SequenceFile标识为hadoop中的输入文件?
- 17. hadoop类路径
- 18. 如何在hadoop map reduce程序中的mapper代码中获取输入文件名
- 19. 在Postharp编译期间获取项目路径/输出路径
- 20. Hadoop MapReduce wordcount教程错误:输入路径不存在
- 21. Spark-Hadoop-> org.apache.hadoop.mapred.InvalidInputException:输入路径不存在
- 22. Hadoop -pseudo分布式模式:输入路径不存在
- 23. Hadoop是要求输入路径是在localhost 9000
- 24. 首先Hadoop项目的错误:“输入路径不存在”
- 25. 从jQuery中的表总输入中获取总数?
- 26. Hadoop中的Mapper和Reducer
- 27. 在流式传输hadoop程序中获取输入文件名
- 28. 在AppServiceProvider中获取路径参数
- 29. 获取模块路由引入路径
- 30. 如何获取R中输入文件的绝对路径
基督我得到了一个输入路径没有发现异常,当我尝试这一点。输入路径肯定存在。 –
你可以发布整个堆栈跟踪(pastebin或soem这样的地方,使格式更容易) –
克里斯,我很抱歉,我们实现了一个自定义FileInputFormat,执行递归跟踪。您的解决方案奏效再次感谢! –