我注意到有两组Hadoop配置参数:一组带有mapred。*,另一组带有mapreduce。。我猜这些可能是由于旧API与新API有关,但如果我没有弄错,这些似乎在新API中共存。我对么?如果是这样,是否存在用于mapred的广义语句。以及mapreduce的用途。*?
答案 0 :(得分:3)
检查0.20.2的源代码,只有少数mapreduce.*
属性,它们围绕配置作业输入/输出格式,映射器/合并器/缩减器和分区器类(它们也向作业发出信号)用户正在使用新API的客户端 - 查看o.a.h.mapreduce.Job
,setUseNewAPI()
方法的来源
mapreduce.inputformat.class
mapreduce.outputformat.class
mapreduce.partitioner.class
mapreduce.map.class
mapreduce.combine.class
mapreduce.reduce.class
还有一些属性,但它们是辅助配置
输入和输出格式(无论是新版本还是旧版本)通常使用mapred.*
属性
例如,地图减少您使用mapred.input.dir
输入路径的信号(无论您使用的是新旧API)。输出属性mapred.output.dir
所以if的长短都是,如果没有实用工具方法来配置属性(FileInputFormat.setInputPaths(Job, String)
)那么你需要检查源
答案 1 :(得分:2)
是的已弃用的mapred库。 mapreduce库是hadoop 0.20.1中的新内容。
但是,您仍然可以使用mapred提供的一些功能,这就是您仍然可以在目录中找到它的原因。
请查看此链接,了解您仍可使用的功能:http://hadoop.apache.org/common/docs/r0.20.0/api/org/apache/hadoop/mapred/package-summary.html
答案 2 :(得分:1)
hadoop.mapred
已被弃用。
0.20.1
之前的版本使用mapred
。
使用mapreduce
之后的版本。
我不认为他们共存。