首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

以敏捷方式将单节点集群从 MapReduce Version 1 迁移到 YARN (2)

以敏捷方式将单节点集群从 MapReduce Version 1 迁移到 YARN (2)

迭代 1:构建一个单节点 YARN 集群在本次迭代中,准备了极少(但有效)的配置文件。然后,我们将卸载 MRv1 后台进程,安装两个需要的 YARN 后台进程。在迭代结束时,您将拥有一个在运行和处理数据的 YARN        集群。但是,这个集群缺少了一些重要特性,配置了许多默认设置和非最优的配置设置。
第 1 步. 配置 YARN 集群的属性要准备 YARN 集群的尽量简单的配置,可以根据您当前的配置目录来创建一个自定义目录,如下所示。
清单 1. 创建一个自定义目录
1
$ sudo cp -r /etc/hadoop/conf.dist /etc/hadoop/conf.yarn




/etc/hadoop/conf.yarn 目录包含 YARN 集群的所有必要的 Hadoop 相关配置。随后,在做好配置工作后,将通过设置          alternatives 将此目录设置为首选目录。
首先,在 mapred-site.xml 中添加两个配置设置。
清单 2. mapred-site.xml        文件
1
2
3
4
5
6
7
8
9
10
11
12
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    <description>The runtime framework for executing MapReduce jobs.
Can be one of local, classic or yarn.</description>
  </property>

  <property>
    <name>yarn.app.mapreduce.am.staging-dir</name>
    <value>/user</value>
    <description>The staging dir used while submitting jobs.</description>
  </property>




YARN 引入了一个配置文件 yarn-site.xml,其中包含 YARN 相关配置设置的值。最重要的设置是 ResourceManager 的          hostname 和 port 参数,它们让客户端知道在何处提交应用程序。发出命令 hostname        来检查您机器的主机名。
清单 3. 检查机器的主机名
1
2
$ hostname
hakunamapdata




备注:在每个使用 hakunamapdata 参数的地方使用您自己的主机名。使用真实的主机名而不是          localhost 参数,这样集群就能够扩展到多个节点,而无需更改 yarn.resourcemanager.address        设置的值来允许新节点连接到 ResourceManager。
在第一次迭代中,yarn-site.xml 文件仅包含 4 个配置设置,如下所示。
清单 4. 包含 4 个配置设置的        yarn-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<property>
   <name>yarn.resourcemanager.address</name>
   <value>hakunamapdata:8032</value>
   <description>The address of the applications manager
interface in the RM.</description>
</property>

<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce.shuffle</value>
</property>

<property>
   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
   <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

<property>
   <name>yarn.application.classpath</name>
   <value>
     $HADOOP_CONF_DIR,
     $HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*,
     $HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*,
     $HADOOP_MAPRED_HOME/*,$HADOOP_MAPRED_HOME/lib/*,
     $YARN_HOME/*,$YARN_HOME/lib/*
   </value>
   <description>Classpath for typical applications.</description>
</property>




在 MRv1 中,运行 MapReduce 作业所需的 shuffle 函数是 TaskTracker 的一部分。但是,在 YARN 中,TaskTracker        并不存在,因为它们已被 NodeManager 取代。将 MapReduce shuffle 代码转移到 NodeManager 可能是一个糟糕的设计决策,但因为        NodeManager 是一个通用进程,所以它不应包含特定于 MapReduce 的代码。
结果,shuffle 被实现为一个由 NodeManager 加载的附属服务。此服务启动一个 Web 服务器,并知道在缩减 (reduce)        任务请求中间数据时,如何将这些数据从本地磁盘发送到这些任务。
yarn-site.xml 文件中的 yarn.application.classpath 参数包含多个环境变量。在继续后面的操作之前,需要在          hadoop-env.sh 中设置两个变量。
清单 5. 在 hadoop-env.sh        中设置两个环境变量
1
2
3
#!/bin/bash
export HADOOP_CONF_DIR=/etc/hadoop/conf
export HADOOP_MAPRED_HOME=/usr/lib/hadoop-mapreduce




第 2 步. 调整 Hadoop 后台进程的堆大小设置这是一个可选但推荐采用的步骤。大多数 Hadoop 后台进程的默认最大堆大小为 1 GB,但因为所有后台进程都在同一个 4GB 机器上运行,所以需要缩小此大小。可以使用 清单 6 或 清单 7 中所示的相同值,或者调整它们,让它们适合您的机器。与 YARN 后台进程的堆大小相关的设置是在        yarn-env.sh 文件中配置的。
清单 6. 在 yarn-env.sh 中配置 YARN 后台进程的堆大小        
1
JAVA_HEAP_MAX=-Xmx64m




相反,HDFS 后台进程的堆大小是在 hadoop-env.sh 文件中配置的。
清单 7. 在 hadoop-env.sh 中配置 HDFS 后台进程的堆大小        
1
2
3
export HADOOP_NAMENODE_OPTS="-Xmx64m"
export HADOOP_SECONDARYNAMENODE_OPTS="-Xmx64m"
export HADOOP_DATANODE_OPTS="-Xmx64m"




第 3 步. 配置暂存目录因为系统代表提交作业的用户将用户的作业文件写入到一个暂存目录(使用 yarn.app.mapreduce.am.staging-dir        指定)中,所以需要使用 清单 8 中的命令来确保用户可以写入 /user 目录。
清单 8. 允许用户写入到 /user        目录
1
$ sudo -u hdfs hadoop fs -chmod 777 /user




第 4 步. 下载 YARN 包Cloudera 和 Hortonworks 提供了远程 yum、SLES 和 apt 存储库,可以从中下载并安装 MRv1 和 YARN        包。必须设置对合适的远程存储库的访问能力。
如果已经使用 CDH4 安装了 MRv1 集群,那么您应该已经拥有访问包含与您操作系统兼容的 YARN 包的远程存储库的能力。否则,要获取访问能力,需要发出以下命令。
清单 9. 访问包含 YARN        包的远程目录
1
2
$ wget http://archive.cloudera.com/cdh4 ... ository_1.0_all.deb
sudo dpkg -i cdh4-repository_1.0_all.deb




检索一个新的包列表,确认能够访问这些 YARN 包。
清单 10. 检索一个新的包列表
1
2
3
4
5
6
7
8
$ sudo apt-get update
$ sudo apt-cache search yarn

hadoop-0.20-conf-pseudo - Hadoop installation in pseudo-distributed mode with MRv1
hadoop-yarn - The Hadoop NextGen MapReduce (YARN)
hadoop-yarn-nodemanager - Node manager for Hadoop
hadoop-yarn-proxyserver - Web proxy for YARN
hadoop-yarn-resourcemanager - ResourceManager for Hadoop




可以通过类似的方法获得对 HDP2 包的访问。如果使用标准 Apache Hadoop,可以从  下载        Hadoop。
返回列表