YARN与历史服务配置
任务调度 (Mapreduce)
资源管理(resourcemanager nodemanager)
【Yarn架构】
主从架构:
主节点ResourceManager
从节点NodeManager
1. ResourceManager(RM)
全局的资源管理器,整个集群只有一个,负责集群资源的统一管理和调度分配
2. ApplicationMaster(AM)
用户提交的每个应用程序均包含1个AM,
主要功能包括:与RM调度器协商以获取资源(用Container表示);
将得到的任务进一步分配给内部的任务;
与NM通信以启动/停止任务;
监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。
3. NodeManager(NM)
NM是每个节点上的资源和任务管理器,一方面,它会定时地向RM汇报本节点上的
资源使用情况和各个Container的运行状态;另一方面,它接收并处理来自AM的
Container启动/停止等各种请求。
4. Container
Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,
如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源
便是用Container表示的。YARN会为每个任务分配一个Container,且该任
务只能使用该Container中描述的资源。
下面来开始配置
配置yarn-site.xml文件
更改为自己的主机名
<!-- 指定ResorceManager所在服务器的主机名-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01.com</value>
</property>
<!-- 指明在执行MapReduce的时候使用shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
复制并重名模板文件
$ cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
配置mapred-site.xml文件
<configuration>
<!-- 指定MapReduce基于Yarn来运行-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置完成后启动resourcemanager和nodemanager
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
查看进程均启动成功。
yarn 的试用方法
$ bin/yarn
试用yarn简单的跑一个pi圆周率
$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar pi 5 3
运行一个词频统计
在datas目录上传一个test.txt文件
$ bin/hdfs dfs -put /opt/datas/test.txt /
//查看是否上传成功
$ bin/hdfs dfs -ls /
$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /test.txt /output
当我们点击tmp的时候发现没有权限,我们需要配置权限检测
当我们点击logs的时候发现没有日志,我们还需要配置日志聚合和历史服务
配置之前需要关闭所有守护进程
$ killall java
配置日志聚合、权限检测的配置
在文件mapred-site.xml文件中配置
<property>
<name>mapreduce.jobhistory.address</name>
<!--配置实际的主机名和端口-->
<value>[hostname]:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>[hostname]:19888</value>
</property>
<!--启用日志聚合功能-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!--日志保存时间 默认保存3-7-->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
配置完成。
启动所有进程
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
$ sbin/hadoop-daemon.sh start secondarynamenode
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
启动历史服务
$ sbin/mr-jobhistory-daemon.sh start historyserver
再次运行词频统计
略... 查看history
tmp也可以进入