Apache Hadoop 2.2.0MapReduce1.x向2.x迁徙
来源:互联网 发布:侧脸 知乎 分析 编辑:程序博客网 时间:2024/04/29 06:23
在hadoop的2.x中我们引入了一个资源管理器,一个分布式应用的管理框架,同时MRv2仍然是一个纯净的分布式计算框架。
总的来讲,以前的MR应用(MRv1)仍然支持不需要做任何修改。因此MRv2仍然大部分支持MRv1的应用,不过仍然需要代码改进和重构,一些api将被不推荐使用。
余下部分将会讨论MRv2的向后兼容能力。
二进制兼容
首先基于旧mapred api的二进制程序兼容意思是说这些应用程序是基于MRv1的api编译构建的,那么他们不需要做任何修改就可以在MRv2上运行。仅仅需要指明hadoop2.x的配置文件。
源文件兼容
我们不能确定基于mapreduce构建的二进制文件是否能兼容,毕竟这些api基于MRv1变化很大。不过我们可以肯定的是基于mapreduce从新构建二进制文件是兼容的,换句话说用户可以基于mapreduce重新构建他们的二进制文件,一个需要注意的不兼容地方是Counter 和CounterGroup。
不支持
MRAdmin在MRv2中已经被删除。因为mradmin 命令已经不存在了。他被rmadmin替换掉了,我们不支持二进制直接使用了此类。
MRv1用户和MRv2早期用户权衡
不幸的是保持MRv1二进制兼容问题会导致MRv2早期用户(hadoop 0.23用户)二进制不兼容问题。对于mapred api我们选择兼容MRv1应用,因为他们的用户比较庞大。对于mapreduce api用户没有采用hadoop 0.23的应用我们仍然让他们兼容MRv1的应用,如下罗列的是MapReduce api不兼容hadoop 0.23:
Problematic FunctionIncompatibility Issueorg.apache.hadoop.util.ProgramDriver#driveReturn type changes from void to intorg.apache.hadoop.mapred.jobcontrol.Job#getMapredJobIDReturn type changes from String to JobIDorg.apache.hadoop.mapred.TaskReport#getTaskIdReturn type changes from String to TaskIDorg.apache.hadoop.mapred.ClusterStatus#UNINITIALIZED_MEMORY_VALUEData type changes from long to intorg.apache.hadoop.mapreduce.filecache.DistributedCache#getArchiveTimestampsReturn type changes from long[] to String[]org.apache.hadoop.mapreduce.filecache.DistributedCache#getFileTimestampsReturn type changes from long[] to String[]org.apache.hadoop.mapreduce.Job#failTaskReturn type changes from void to booleanorg.apache.hadoop.mapreduce.Job#killTaskReturn type changes from void to booleanorg.apache.hadoop.mapreduce.Job#getTaskCompletionEventsReturn type changes from o.a.h.mapred.TaskCompletionEvent[] too.a.h.mapreduce.TaskCompletionEvent[]蓄意
用户在YARN上运行 hadoop-examples-1.x.x.jar,需要注意的是hadoop -jar hadoop-examples-1.x.x.jar仍然采用的是hadoop-mapreduce-examples-2.x.x.jar,他跟其他MRv2安装在一起。默认hadoop的jar优先于用户的jar加载也就是说2.x.x的会优先执行。用户需要在所有的hadoop节点上移除hadoop-mapreduce-examples-2.x.x.jar 。用户需要设置 HADOOP_USER_CLASSPATH_FIRST=true and HADOOP_CLASSPATH=...:hadoop-examples-1.x.x.jar去执行他们想执行的例子,同时需要在mapred-site.xml配置文件中加入如下信息以便YARN加载此jar:
<property><name>mapreduce.job.user.classpath.first</name><value>true</value></property
参考:http://www.myexception.cn/apache/1484748.html
- Apache Hadoop 2.2.0MapReduce1.x向2.x迁徙
- MapReduce1.X与2.X的对比
- MapReduce1.1.2&0.2x区别
- Apache Hadoop 2.x的改进概述
- Hadoop-2.2.0中文文档—— 从Hadoop 1.x 迁移至 Hadoop 2.x
- 企业级Hadoop 2.x入门系列之一Apache Hadoop 2.x简介与版本
- hadoop 2.x 配置
- hadoop 2.x 编译
- Hadoop 2.x理论知识
- Hadoop 2.x 架构
- 初探Hadoop 2.x
- hadoop 2.x.x的目录结构
- Setup newest Hadoop 2.x (2.2.0) on Ubuntu
- hadoop2.0.x【2】--Apache Hadoop MapReduce - Migrating from Apache Hadoop 1.x to Apache Hadoop 2--翻译与分析
- apache 2.2.X + PHP5.X.X 不能运行的解决办法.
- Hadoop 1.X & Hadoop 2.X 默认端口对比
- Hadoop 1.X & Hadoop 2.X 默认端口对比
- Hadoop 1.x 和Hadoop 2.x的区别
- poj3974 Palindrome 最长回文子串
- 《Effective STL》读书笔记
- 求矩阵中元素和最大的二维子矩阵
- 跪求出名:让应用在App Store中出人头地的12种方式
- NYOJ206 矩形的个数 【数学】
- Apache Hadoop 2.2.0MapReduce1.x向2.x迁徙
- json对于大写成员变量
- java反射
- iOS使用ffmpeg播放rstp实时监控视频数据流
- Linux新手命令
- 每天学习一点编程(7)(n 个数字(0,1,…,n-1)形成一个圆圈,从数字0 开始,每次从这个圆圈中删除第m 个数字)
- Smart Thread Pool 介绍
- Ubuntu 安装Java开发环境(jdk1.7 + Eclipse)
- 适配iOS7 — UISearchBar