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.nodemanager.aux-services
  mapreduce_shuffle



  yarn.resourcemanager.hostname
  hadoop101



  yarn.log-aggregation-enable 
  true



  yarn.log-aggregation.retain-seconds
  604800

(5)cp mapred-site.xml.template mapred-site.xml
(6)配置vi mapred-site.xml


  mapreduce.framework.name
  yarn



  mapreduce.jobhistory.address
  hadoop101:10020



  mapreduce.jobhistory.webapp.address
  hadoop101:19888

(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.nodemanager.aux-services
  mapreduce_shuffle



  yarn.resourcemanager.hostname
  hadoop103



  yarn.log-aggregation-enable 
  true



  yarn.log-aggregation.retain-seconds
  604800

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


  mapreduce.framework.name
  yarn



  mapreduce.jobhistory.address
  hadoop104:10020



  mapreduce.jobhistory.webapp.address
  hadoop104:19888

(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
(4)查看节点列表
     yarn node -list
(5)查看指定节点工作状态
     yarn node -status

你可能感兴趣的:(分布式)