介绍
此文档为用户把mr应用从1.x迁移到2.x上提供说明。
在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 Function | Incompatibility Issue |
org.apache.hadoop.util.ProgramDriver#drive | Return type changes from void to int |
org.apache.hadoop.mapred.jobcontrol.Job#getMapredJobID | Return type changes from String to JobID |
org.apache.hadoop.mapred.TaskReport#getTaskId | Return type changes from String to TaskID |
org.apache.hadoop.mapred.ClusterStatus#UNINITIALIZED_MEMORY_VALUE | Data type changes from long to int |
org.apache.hadoop.mapreduce.filecache.DistributedCache#getArchiveTimestamps | Return type changes from long[] to String[] |
org.apache.hadoop.mapreduce.filecache.DistributedCache#getFileTimestamps | Return type changes from long[] to String[] |
org.apache.hadoop.mapreduce.Job#failTask | Return type changes from void to boolean |
org.apache.hadoop.mapreduce.Job#killTask | Return type changes from void to boolean |
org.apache.hadoop.mapreduce.Job#getTaskCompletionEvents | Return 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>
相关推荐
[INFO] Apache Hadoop MapReduce Examples .................. SUCCESS [6.461s] [INFO] hadoop-mapreduce .................................. SUCCESS [3.936s] [INFO] Apache Hadoop MapReduce Streaming ..........
[INFO] Apache Hadoop MapReduce Examples .................. SUCCESS [6.461s] [INFO] hadoop-mapreduce .................................. SUCCESS [3.936s] [INFO] Apache Hadoop MapReduce Streaming ..........
[INFO] Apache Hadoop MapReduce Streaming ................. SUCCESS [4.999s] [INFO] Apache Hadoop Distributed Copy .................... SUCCESS [7.547s] [INFO] Apache Hadoop Archives .....................
Apache Hadoop 2.2.0 is the GA release of Apache Hadoop 2.x. Users are encouraged to immediately move to 2.2.0 since this release is significantly more stable and is guaranteed to remain compatible in...
在Hadoop 2.x中,MapReduce被设计为与YARN协同工作,使得任务调度更加灵活高效。 在压缩包文件名称列表中,"hadoop-2.2.0"通常包含以下目录结构: - `bin`:包含可执行脚本,如启动和停止Hadoop服务的命令。 - `...
这个版本是Hadoop的一个中期稳定版,包含了YARN(Yet Another Resource Negotiator),这是一个资源管理器,将原本在Hadoop 1.x中的JobTracker的功能拆分为Resource Manager和Application Master,使得系统资源调度...
Hadoop 2.2.0 是 Apache Hadoop 的一个关键版本,它包含了众多改进和优化,使得这个分布式计算框架在处理大数据集时更加高效和稳定。在这个配置文件中,我们将会探讨Hadoop 2.2.0 在4台CentOS 6.4系统上运行所需的...
Hadoop 2.2.0是其一个重要版本,它在Hadoop 1.x的基础上进行了大量的优化和改进,增强了系统的稳定性和性能,为大数据处理提供了更强大的支持。 1. 分布式文件系统(HDFS):Hadoop的核心之一是Hadoop Distributed ...
4. **YARN(Yet Another Resource Negotiator)相关**:在Hadoop 2.x版本中,资源管理和调度功能由YARN接管,它负责集群资源的分配和管理,使得Hadoop可以支持更多类型的计算框架。相关jar包如hadoop-yarn-api、...
Apache Hive 是一个基于 Hadoop 的数据仓库工具,用于查询、管理和分析存储在 Hadoop 分布式文件系统(HDFS)中的大数据集。Hive 提供了一种声明式的 SQL-like 语言,称为 HiveQL,使得非程序员也能对大数据进行分析...
MapReduce是Apache Hadoop的核心组件之一,用于处理和存储大规模数据集。在这个场景中,我们讨论的是一个在Hadoop 2.2.0版本上运行的简单MapReduce程序,名为"MaxTemperature",它通常被用作入门示例来演示MapReduce...
Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce。这个压缩包“hadoop-common-2.2.0-bin-master”是Hadoop 2.2.0版本的公共库二进制...
hadoop2.2.0 在window下进行MapReduce 测试时需要的工具,使用时需要修改 源码org.apache.hadoop.util.Shell.java 的277行fullName的路径如: String fullExeName = "d:/hadoop" + File.separator + executable; ...
Apache Hive 是一个基于Hadoop的数据仓库工具,它允许用户通过SQL-like的语言(称为HQL,Hive Query Language)对大规模数据集进行分析和查询。在Hadoop生态系统中,Hive扮演着数据仓库和数据分析的角色,使得非编程...
Hadoop 2.2.0 是Apache Hadoop的一个稳定版本,它包含了大量对Hadoop生态系统(包括HDFS、MapReduce、YARN等)的改进和支持。这一版本提供了更好的性能、安全性和可扩展性,适用于处理大规模数据集。 #### 1. HDFS ...
例如,你需要设置`dfs.replication`来控制数据副本的数量,`mapreduce.framework.name`来选择计算模型(本地模式、伪分布式模式或完全分布式模式)。此外,还需要配置SSH无密码登录,以便节点间能相互通信。 最后,...
总结来说,Hadoop 2.2.0 64位native文件是为64位Linux系统定制的,包含了Hadoop运行所必需的本地库,涵盖了JNI接口、HDFS客户端、MapReduce组件、线程库、压缩库、加密库以及内存管理优化等多个方面。在遇到与native...
2. **下载Hadoop**:从Apache官网获取Hadoop2.2.0的tar.gz文件,并解压到指定目录,如/opt/hadoop。 3. **配置环境变量**:在系统环境变量配置文件(如~/.bashrc)中添加HADOOP_HOME,并设置PATH。 4. **配置Hadoop*...