Hadoop发布和新API

时间:2013-02-11 22:24:00

标签: api hadoop mapreduce yarn

我对Hadoop版本和新API感到非常困惑。我有一个关于Hadoop 0.20.203的项目,我认为是时候进行升级了。我希望使用具有YARN的版本,该版本为0.23或2.0.2。因为2.0.2根据Hadoop网站就像0.23但更好,我已经导入了2.0.2版本。新api应该在org.apache.hadoop.mapreduce中,而不是在org.apache.hadoop.mapred中,我已经从我的0.20版本获得了这个包,所以我没有必要改变任何东西。 Job类的所有构造函数都已弃用,那么我应该如何使用这个类呢?当我运行我的项目时,我也会收到很多弃用警告,提到mapred包。

我编辑了我的问题,以包含我在输出中弃用的东西

13/02/12 00:52:57 WARN conf.Configuration: mapred.jar is deprecated. Instead, use mapreduce.job.jar
13/02/12 00:52:57 WARN conf.Configuration: mapred.cache.files is deprecated. Instead,   use mapreduce.job.cache.files
13/02/12 00:52:57 WARN conf.Configuration: mapred.reduce.tasks is deprecated. Instead, use mapreduce.job.reduces
13/02/12 00:52:57 WARN conf.Configuration: mapred.output.value.class is deprecated. Instead, use mapreduce.job.output.value.class
13/02/12 00:52:57 WARN conf.Configuration: mapred.mapoutput.value.class is deprecated. Instead, use mapreduce.map.output.value.class
13/02/12 00:52:57 WARN conf.Configuration: mapreduce.map.class is deprecated. Instead, use mapreduce.job.map.class
13/02/12 00:52:57 WARN conf.Configuration: mapred.job.name is deprecated. Instead, use mapreduce.job.name
13/02/12 00:52:57 WARN conf.Configuration: mapreduce.reduce.class is deprecated. Instead, use mapreduce.job.reduce.class
13/02/12 00:52:57 WARN conf.Configuration: mapred.input.dir is deprecated. Instead, use mapreduce.input.fileinputformat.inputdir
13/02/12 00:52:57 WARN conf.Configuration: mapred.output.dir is deprecated. Instead, use mapreduce.output.fileoutputformat.outputdir
13/02/12 00:52:57 WARN conf.Configuration: mapred.max.split.size is deprecated. Instead, use mapreduce.input.fileinputformat.split.maxsize
13/02/12 00:52:57 WARN conf.Configuration: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps
13/02/12 00:52:57 WARN conf.Configuration: mapred.cache.files.timestamps is deprecated. Instead, use mapreduce.job.cache.files.timestamps
13/02/12 00:52:57 WARN conf.Configuration: mapred.output.key.class is deprecated. Instead, use mapreduce.job.output.key.class
13/02/12 00:52:57 WARN conf.Configuration: mapred.mapoutput.key.class is deprecated. Instead, use mapreduce.map.output.key.class
13/02/12 00:52:57 WARN conf.Configuration: mapred.working.dir is deprecated. Instead, use mapreduce.job.working.dir

1 个答案:

答案 0 :(得分:0)

在20.2xx / 1.x和0.21 / 0.22 / 0.23 / 2.x之间,有两个主要的变化发生在w.r.t mapreduce框架中。

  • 重命名了几个配置名称以更好地反映什么是服务器端配置属性以及什么是客户端配置属性。
    • 客户端配置:旧名称已弃用,这就是您看到这些警告的原因。
    • 你提到2.0.2,所以我想你正在使用新的框架YARN。在这种情况下,旧的服务器端配置都不会产生任何影响。
  • 有两种版本的mapreduce API - 旧API(org.apache.hadoop.mapred)和新API(org.apache.hadoop.mapreduce)。这是一个很长的历史,但目前的状态(以及未来)是旧的和新的API都支持。
    • 旧API仍然稳定,并且在所有版本中以二进制兼容方式支持。
    • 新版API在各个版本(1.x - > 2.x)中存在一些兼容性问题。

您可以在此处详细了解Hadoop 2中的API兼容性:http://hortonworks.com/blog/running-existing-applications-on-hadoop-2-yarn/