设为首页 加入收藏

TOP

Hadoop-2.2.0中文文档—— 从Hadoop 1.x 迁移至 Hadoop 2.x
2019-03-19 00:33:28 】 浏览:62
Tags:Hadoop-2.2.0 中文 文档 Hadoop 1.x 迁移 2.x

简介

本文档对从 Apache Hadoop 1.x 迁移他们的Apache Hadoop MapReduce 应用到 Apache Hadoop 2.x 的用户提供了一些信息。

在 Apache Hadoop 2.x 中,我们已经把资源管理功能放入分布式应用管理框架 的Apache Hadoop YARN,而 Apache Hadoop MapReduce (亦称 MRv2) 保持为一个纯分布式计算框架。

总之,之前的 MapReduce 运行时 (亦称 MRv1) 已经被重用并且不会有重大功能放在其上()。因此,MRv2 可以确保与MRv1 应用之间的兼容性。然而,由于一些改进和代码重构,一些API已经导致后向不兼容。

本页的剩余部分将讨论在Apache Hadoop MapReduce 2.x (MRv2)中我们支持的后向兼容的范围和级别。

Binary 兼容性

首先,我们确保对使用旧的mapred的应用二进制兼容。这意味着使用MRv1mapredAPI 创建的应用不用重新编译就可直接在YARN上运行,仅仅需要通过配置把它们指向一个Apache Hadoop 2.x 集群。

Source 兼容性

我们不能确保使用mapreduceAPI的应用的二进制兼容,因为这些API从MRv1起已经改变了很多。然而,我们确保对mapreduceAPI 的兼容性。换句话说,用户可以用MRv2的mapreduceAPI 重新编译他们的应用。一个显著的二进制不兼容是Counter 和 CounterGroup。

不支持的

MRv2 中MRAdmin 已经被删除了,因为mradmin命令不存在了。他们已经被rmadmin中的命令代替了。我们不支持直接使用这个类的二进制或源码。

MRv1 用户和早期的 MRv2 适应者间的折中

不幸的是,维持对MRv1应用的二进制兼容可能导致MRv2的早期适应者的二进制不兼容问题,特别是Hadoop 0.23 用户。对于mapredAPIs, 有一大批的用户,我们已经选择兼容MRv1应用。对于mapreduceAPIs, 如果他们不显示地使用 Hadoop 0.23 应用,我们仍然是他们与MRv1应用兼容。下面是与Hadoop 0.23不兼容的MapReduce APIs 列表。

问题函数 不兼容问题
org.apache.hadoop.util.ProgramDriver#drive Return type changes fromvoidtoint
org.apache.hadoop.mapred.jobcontrol.Job#getMapredJobID Return type changes fromStringtoJobID
org.apache.hadoop.mapred.TaskReport#getTaskId Return type changes fromStringtoTaskID
org.apache.hadoop.mapred.ClusterStatus#UNINITIALIZED_MEMORY_VALUE Data type changes fromlongtoint
org.apache.hadoop.mapreduce.filecache.DistributedCache#getArchiveTimestamps Return type changes fromlong[]toString[]
org.apache.hadoop.mapreduce.filecache.DistributedCache#getFileTimestamps Return type changes fromlong[]toString[]
org.apache.hadoop.mapreduce.Job#failTask Return type changes fromvoidtoboolean
org.apache.hadoop.mapreduce.Job#killTask Return type changes fromvoidtoboolean
org.apache.hadoop.mapreduce.Job#getTaskCompletionEvents Return type changes fromo.a.h.mapred.TaskCompletionEvent[]too.a.h.mapreduce.TaskCompletionEvent[]

Malicious

对于将要在YARN上试用hadoop-examples-1.x.x.jar的用户,请注意hadoop -jar hadoop-examples-1.x.x.jar 还是会使用hadoop-mapreduce-examples-2.x.x.jar, 其与其他的 MRv2 jars 一同安装. 默认地, Hadoop 框架包在classpath中出现在用户的jar之前,以便2.x.x 包中的类仍会被选中。用户在集群中的所有节点的classpath中应该删除hadoop-mapreduce-examples-2.x.x.jar。否则,用户应该设置HADOOP_USER_CLASSPATH_FIRST=true并且HADOOP_CLASSPATH=...:hadoop-examples-1.x.x.jar去执行他们的目标示例jar, 还要在mapred-site.xml中添加配置,使得 YARN 容器进程会调用这个jar包。

<property>

        <name>mapreduce.job.user.classpath.first</name>
        <value>true</value>
    </property>

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇10天Hadoop快速突击(1)——Hado.. 下一篇Hadoop安装配置

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目