文章目录
一、Yarn介绍
Yarn(Apache Hadoop YARN)是Hadoop的一部分,负责Hadoop集群的资源调度。事实上,Yarn本身也是一个集群,它主要包括4个部分:
- ResourceManager(RM):RM是一个全局的资源管理器,负责整个系统的资源管理和分配。
- ApplicationMaster(AM):用户提交的每个应用程序均包含一个AM,负责向RM申请资源(Container),并分配给对应的应用程序。
- NodeManager(NM):NM是集群每个主机节点上的资源和任务管理器。
- Container:Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。
二、Yarn的配置与启动
前提:配置好了HDFS集群,如果没有,可以先看:Hadoop集群安装与部署
(1)Yarn集群配置
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Hadoop02</value>
</property>
<!-- 下面两个可有可无,建议加上日志的配置 -->
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
etc/hadoop/yarn-env.sh
export JAVA_HOME=JAVA_HOME绝对路径
然后使用xsync脚本分发修改后的配置文件
(2)Yarn集群的启动
在配置了etc/hadoop/slaves
的前提下,通过群起集群在ResouceManager所在的主机上启动YARN:
$ sbin/start-yarn.sh
三、MapReduce程序配置与测试
(1)MapReduce简介
MapReduce是Hadoop自带的一个分布式计算框架,适合做离线计算和批处理,可以运行在Yarn集群上。
(2)MapReduce的配置
$ cp mapred-site.xml.template mapred-site.xml
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 下面两个可有可无,建议加上历史服务器的配置 -->
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>Hadoop01:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Hadoop01:19888</value>
</property>
etc/hadoop/mapred-env.sh
export JAVA_HOME=JAVA_HOME绝对路径
然后使用xsync脚本分发修改后的配置文件
(3)测试MapReduce程序
- 如果配置了历史服务器,则先在历史服务器所在主机,启动历史服务器:
$ sbin/mr-jobhistory-daemon.sh start historyserver
- 测试官方WordCount案例:
$ hdfs dfs -mkdir -p /user/Bessen/input
$ hdfs dfs -put wcinput/wc.input /user/Bessen/input/
$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar wordcount /user/Bessen/input /user/Bessen/output
$ hdfs dfs -cat /user/Bessen/output/*
四、Yarn的监控
Yarn web:http://RM主机地址:8088/cluster
历史服务器日志:http://历史服务器主机地址:19888/jobhistory