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

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

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

迭代 2:配置 MapReduce Job History Server尽管 YARN 集群已在运行和处理数据,但无法看到来自 MapReduce 集群的任何指标。在 MRv1 中不可能出现这种情况,其中目前运行和最近完成的 MapReduce        作业可通过 JobTracker 的 Web UI 轻松访问。
在 YARN 中,JobTracker 不再存在。作业生命周期和度量指标管理变成了仅短暂存在的 ApplicationMaster 的职责。在用户提交一个应用程序时,会启动        ApplicationMaster 的一个实例来协调该任务中所有任务的执行。当应用程序完成时,ApplicationMaster 就会结束,您不能再访问此应用程序的度量指标。
出于这个原因,我们引入了一个新的 MapReduce Job History Server (MR JHS)。它在 MapReduce 作业的 ApplicationMasters        结束时将会维护这些作业的信息。
ApplicationMaster 运行时,ResourceManager Web UI 会将请求转发到这个 ApplicationMaster。ApplicationMaster        完成时,ResourceManager Web UI 会将请求转发给 MR JHS。
下一步是部署 MapReduce Job History Server。
第 1 步. 配置 MapReduce Job History Server 的属性指定相关的配置设置,以便指示 MR JHS 在何处运行和存储历史文件。
清单 22. 在 mapred-site.xml 中指定 MR JHS 的位置。        
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
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>hakunamapdata:10020</value>
    <description>MapReduce JobHistory Server IPC
host:port</description>
  </property>

  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hakunamapdata:19888</value>
    <description>MapReduce JobHistory Server Web UI
host:port</description>
  </property>

  <property>
    <name>mapreduce.jobhistory.intermediate-done-dir</name>
    <value>/mr-history/tmp</value>
Directory where history files are written by MapReduce jobs.
  </property>

  <property>
    <name>mapreduce.jobhistory.done-dir</name>
    <value>/mr-history/done</value>
Directory where history files are archived by the MR
JobHistory Server.
  </property>




可以使用两个可选的、额外的设置:
  • mapreduce.jobhistory.max-age-ms:默认设置为 604,800,000 毫秒(1          星期),指定了历史文件的保留期。如果想要对历史 MapReduce 作业运行分析,默认值可能太短了。
  • mapreduce.jobhistory.joblist.cache.size:默认设置为 20.000          个作业,指定了 MR JHS 应在内存中保留的最新的作业的数量(有关旧作业的信息仍可从 HDFS 读取)。显然,            mapreduce.jobhistory.joblist.cache.size 越高,MR JHS 使用内存就越多。
第 2 步. 配置目录在上一步中,指定了临时和永久存储 MapReduce 历史文件的两个目录。现在将会创建这些目录。
清单 23. 创建 MapReduce        历史文件的存储目录
1
2
3
$ sudo -u hdfs hadoop fs -mkdir -p /mr-history/tmp /mr-history/done
$ sudo -u hdfs hadoop fs -chown -R mapred:hadoop /mr-history/tmp /mr-history/done
$ sudo -u hdfs hadoop fs -chmod -R 777 /mr-history/tmp /mr-history/done




第 3 步. 安装并启动 Job History Server安装并启动 MR JHS。
清单 24. 安装并启动 MR        JHS
1
2
$ sudo apt-get install hadoop-mapreduce-historyserver
$ sudo /etc/init.d/hadoop-mapreduce-historyserver start




成功配置、安装和启动后,应该可以在 http://hakunamapdata:19888/jobhistory 上看到 MapReduce JHS。如果发现了问题,可以首先查看        /var/log/hadoop-mapreduce/yarn-mapred-historyserver-*.log 中的日志来排除问题。
第 4 步. 将第一个 MapReduce 作业提交到 YARN 集群上在这一步中,运行与前一次迭代中相同的作业。
清单 25. 将第一个 MapReduce 作业提交到 YARN        集群上
1
$ hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 10 10




这一次,在作业完成后将会查找作业的度量指标。
在浏览器中打开 ResourceManager,以便在这里查看正在运行的作业。单击 History,就能够访问 MapReduce        JHS,查看有关作业的有用信息、配置、它的计数器链接,以及映射和缩减任务列表。
图 4. MapReduce JHS 公开的有关 MapReduce 作业的基本信息要获取此祖业的计数器,可以单击左上角的菜单中的 Counters
图 5. MapReduce JHS 公开的 MapReduce 作业的计数器第 5 步. 检查集群的配置此刻,如果返回到 ResourceManager 的 Web UI 并单击左上角菜单中的 Nodes,您还会注意到,这个单节点 YARN        集群已被配置为使用 8 GB 内存。因为该节点只有 4 GB 的内存可供使用,所以 NodeManager 被错误配置并报告了比它真正拥有的更多的内存。
图 6. YARN 集群中的 NodeManager 列表,其中配置了默认的可用内存量来运行应用程序的容器
返回列表