YARN分布式资源调度框架

1、YARN=Yet Another Resource Negotiator【另一种资源调度器】

2、主从架构,一主多从

3、主=ResourceManager,从=NodeManager

4、ResourceManager由ApplicationManager和ResourceScheduler组成

5、NodeManager的核心组件包括ApplicationMaster和Container

6、工作流程分为五个阶段:

(1)作业提交阶段

(2)作业初始化阶段

(3)任务分配阶段

(4)任务执行阶段

(5)任务完成阶段

7、yarn工作流程:

(01)、Client向ResourceManager提交作业申请

(02)、ResourceManager中的ApplicationManager处理请求并返回JobID和HDFS路径

(03)、Client把作业的相关资源提交到指定的HDFS路径

(04)、Client向ResourceManager申请执行作业

(05)、ApplicationManager把请求转发到ResourceScheduler

(06)、ResouceScheduler处理请求并返回给ApplicationManager可用的资源

(07)、ApplicationManager通知NodeManager创建Container并启动ApplicationMaster

(08)、ApplicationMaster从HDFS上获取作业资源并计算任务资源

(09)、ApplicationMaster向ResourceScheduler申请执行任务MapTask和ReduceTask所需资源

(10)、ResourceScheduler返回给ApplicationMaster可用资源信息

(11)、ApplicationMaster通知NodeManager启动MapTask和ReduceTask

(12)、NodeManager启动MapTask和ReduceTask

(13)、MapTask和ReduceTask处理数据

(14)、ApplicationMaster监测到所有MapTask和ReduceTask执行完毕后报告ApplicationManager

(15)、ApplicationManager通知NodeManager释放资源

8、安装yarn伪分布式

(1)启动虚拟机,恢复hadoop101的伪分布式快照

(2)切换到cd $HADOOP_HOME/etc/hadoop目录中,修改vi yarn-env.sh

export JAVA_HOME=/opt/install/jdk

(3)修改vi mapred-env.sh

export JAVA_HOME=/opt/install/jdk

(4)配置vi yarn-site.xml

<!-- 启动yarn工作模式 -->

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<!-- 指定 YARN 的 ResourceManager 的地址 -->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>hadoop101</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>

(5)cp mapred-site.xml.template mapred-site.xml

(6)配置vi mapred-site.xml

<!-- 指定 mr 运行在 yarn 上 -->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

<!-- 指定历史服务器工作端口 -->

<property>

<name>mapreduce.jobhistory.address</name>

<value>hadoop101:10020</value>

</property>

<!-- 指定历史服务器访问端口 -->

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>hadoop101:19888</value>

</property>

(7)启动namenode:hadoop-daemon.sh start namenode并通过jps检查

(8)启动datanode:hadoop-daemon.sh start datanode并通过jps检查

(9)启动resourcemanager:yarn-daemon.sh start resourcemanager并通过jps检查

(10)启动nodemanager:yarn-daemon.sh start nodemanager并通过jps检查

(11)通过浏览器查看http://hadoop101:8088

(12)启动历史服务器:mr-jobhistory-daemon.sh start historyserver并通过jps检查

(13)通过浏览器查看http://hadoop101:19888

(14)创建目录:hdfs dfs -mkdir -p /user/hadoop/input/

(15)在本地创建一个文本文件:cd /root;vi words.txt并随意输入单词

(16)上传hdfs文件:hdfs dfs -put words.txt /user/hadoop/input/

(17)运行测试程序:cd $HADOOP_HOME/;

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /user/hadoop/input /user/hadoop/output

(18)查看运行结果

hdfs dfs -cat /user/hadoop/output/*

(19)通过浏览器查看日志:8088->history->log

(20)删除测试文件,停止所有服务:

hdfs dfs -rm -r /user

rm -f words.txt

停止historyserver:mr-jobhistory-daemon.sh stop historyserver

停止nodemanager:yarn-daemon.sh stop nodemanager

停止resourcemanager:yarn-daemon.sh stop resourcemanager

停止datanode:hadoop-daemon.sh stop datanode

停止namenode:hadoop-daemon.sh stop namenode

通过jps检查

(21)关机,做快照

11、安装yarn完全分布式[在hadoop102节点上实施,除非特别说明]:

(1)切换目录cd $HADOOP_HOME/etc/hadoop,vi yarn-env.sh

export JAVA_HOME=/opt/install/jdk

(2)vi mapred-env.sh

export JAVA_HOME=/opt/install/jdk

(3)vi yarn-site.xml

<!-- 启动yarn工作模式 -->

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<!-- 指定 YARN 的 ResourceManager 的地址 -->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>hadoop103</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>

(4)cp mapred-site.xml.template mapred-site.xml

(5)vi mapred-site.xml

<!-- 指定 mr 运行在 yarn 上 -->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

<!-- 指定历史服务器工作端口 -->

<property>

<name>mapreduce.jobhistory.address</name>

<value>hadoop104:10020</value>

</property>

<!-- 指定历史服务器访问端口 -->

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>hadoop104:19888</value>

</property>

(6)cd $HADOOP_HOME/etc/hadoop

scp * hadoop103:`pwd`

scp * hadoop104:`pwd`

(7)在102上启动hdfs集群:start-dfs.sh,通过jps检查

(8)在103上启动yarn集群:start-yarn.sh,通过jps检查

(9)在104上启动historyserver:mr-jobhistory-daemon.sh start historyserver,通过jps检查

(10)通过浏览器查看:

http://hadoop102:50070

http://hadoop103:8088

http://hadoop104:19888

(11)运行测试程序并查看运行结果和日志

(12)停止所有服务并通过jps检查

在104上停止historyserver:mr-jobhistory-daemon.sh stop historyserver

在103上停止yarn集群:stop-yarn.sh

在102上停止hdfs集群:stop-dfs.sh

(13)关机做快照

12、通过yarn命令操作程序

(1)查看所有执行的任务,包括正在执行的和已经执行完成的

yarn application -list -appStates ALL

(2)查看正在执行的任务

yarn application -list

(3)停止正在执行的任务

yarn application -kill <Application-Id>

(4)查看节点列表

yarn node -list

(5)查看指定节点工作状态

yarn node -status <Node-Id>

相关推荐
r i c k7 分钟前
MongoDB分布式集群搭建----副本集----PSS/PSA
数据库·分布式·mongodb
龙哥·三年风水11 分钟前
群控系统服务端开发模式-应用开发-前端部门功能开发
分布式·vue·群控系统
songqq2740 分钟前
【快速上手】Kafka-Eagle 监控的安装部署
分布式·kafka
太阳伞下的阿呆1 小时前
kafka-clients之max.block.ms
分布式·kafka·消息队列
东方巴黎~Sunsiny1 小时前
kafka可视化管理平台-kafka-console-ui
分布式·kafka
阑梦清川1 小时前
RabbitMQ介绍和快速上手案例
分布式·rabbitmq·ruby
菜鸟分享录1 小时前
RabbitMQ教程:工作队列(Work Queues)(二)
分布式·rabbitmq·ruby
叫我二蛋3 小时前
大数据技术之Hadoop :我是恁爹
大数据·hadoop·分布式
谢李由202303220813 小时前
Hadoop 学习心得
大数据·hadoop·分布式
qq_446598043 小时前
Hadoop高可用集群工作原理
大数据·hadoop·分布式