Hadoop生态之Yarn资源管理器配置与使用(五)

在hadoop2.0以前版本,资源管理和作业调度都由mapreduce完成,负载过重,性能瓶颈严重,角色不清,从2.0版引入Yarn概念,将这些只能重MR中独立出来分别用ResourceManager和ApplicationMaster进程来负责。

Yarn:  提供MapReduce、Spark程序运行,并对集群中各类资源进行管理的容器。
hadoop2.X中的Yarn 主要包括ResourceManager,ApplicationMaster和Container等。

Resourcemanager 主要职责:
     处理客户端请求 
     启动或监控ApplicationMaster,
     监控NodeManager, 
     资源的分配与调度
ApplicationMaster主要职责(简单理解为当执行:hadoop jar hao.jar 时,会生成一个 applicattionmaster进程用来表示当前提交的任务程序,运行结束后,自动消失)
      管理MR(spark)运行程序实例
      为运行实例申请资源
      监控和调度运行的任务及容错
Nodemanager主要职责
      管理所在机器的资源
      响应来自resourcemanager,applicaionMaster的请求
Conainer主要职责
      任务分发到每个nodemanager上,Yarn会为每个任务分配一个所要利用资源的一个抽象对象:称为container ,如:分配多大内存,几个核等。是对任务运行资源及环境的抽象。

 

配置Yarn集群安装配置:

1> 配置yarn-site.xml文件,指定resourceManger机器节点;

命令:vi /opt/mysoft/hadoop/etc/hadoop/yarn-site.xml

添加如下内容:

yarn.nodemanager.resource.memory-mb

1540

yarn.nodemanager.resource.cpu-vcores

1

yarn.resourcemanager.hostname

qiku

yarn.nodemanager.aux-services

mapreduce_shuffle

yarn.nodemanager.vmem-check-enabled

false

yarn.nodemanager.remote-app-log-dir ,开发阶段,建议设置为false,默认值为:false-->

yarn.log-aggregation.enabled

true

2> 修改mapred-site.xml文件,指定mapreduce程序跑在Yarn上;

修改文件名:mv mapred-site.xml.template mapred-site.xml

命令:vi /opt/mysoft/hadoop/etc/hadoop/mapred-site.xml

mapreduce.framework.name

yarn

mapreduce.jobhistory.address

hadoop:10020

mapreduce.jobhistory.webapp.address

hadoop:19888

mapreduce.jobtracher.http.address

hadoop:50030

3> 在master机器上手动启动yarn服务

命令:yarn-daemon.sh start resourcemanager 

在各个nodemanager上执行:

命令:yarn-daemon.sh start nodemanager

4> 脚本自动启动Yarn

命令:start-yarn.sh

(这个脚本会读取slavles文件通过SSH逐一开启nodemanager)

5> 开启任务跟踪服务

命令:mr-jobhistory-daemon.sh start historyserver

6> 通过web UI 验证是否配置成功

该服务的具体web访问端口配置在:mapred-site.xml文件中:

http://192.168.248.100:8088

http://192.168.248.100:19888

7> 把配置好的yarn-site.xml文件和mapred-site.xml文件复制到集群的各个节点机器上。

命令:scp /opt/mysoft/hadoop/etc/hadoop/yarn-site.xml hadoop1:$PWD

命令:scp /opt/mysoft/hadoop/etc/hadoop/mapred-site.xml hadoop1:$PWD

8> 重启集群服务

命令:stop-all.sh

命令:start-all.sh

Yarn集群与HDFS的关系:

1> Yarn集群是独立于HDFS的,所以可以在不启动HDFS集群的情况下直接启动Yarn集群;但往往MapReduce程序读取HDFS数据,所以往往也可开起HDFS集群;
2> Yarn和HDFS是Hadoop框架的两个重要组成部分。

生产环境中Yarn集群配置注意事项:

1: MarpReduce程序提交到Yarn 上的nodeManager节点执行计算,往往需要读取datanode里的数据,本着数据就地原则,所以在配置nodeManager节点上也配置dataNode节点,只有数据不在本地时,才考虑远端读取其它dataNode;
2: 自动化启动Yarn集群脚本,也要用到slalves文件中配置的节点信息来启动所有nodeManager节点

你可能感兴趣的:(思普大数据技术)