大数据Hadoop之YARN

  • YARN概述
  • YARN架构
  • 伪分布式下YARN配置文件的修改
  • 启动YARN
  • 启动YARN的过程中可能出现的问题
  • 停止YARN
  • 提交MapReduce作业到YARN上运行

1.YARN概述

  • 全称:Yet Another Resource Negotiator(另一种资源协调者)资源调度框架

2.YARN架构

  • 1)ResourceManager: RM

    • 整个集群同一时间提供服务的RM只有一个,负责集群资源的统一管理和调度
    • 处理客户端的请求: 提交一个作业、杀死一个作业
    • 监控我们的NM,一旦某个NM挂了,那么该NM上运行的任务需要告诉我们的AM来如何进行处理
  • 2)NodeManager: NM

    • 整个集群中有多个,负责自己本身节点资源管理和使用
    • 定时向RM汇报本节点的资源使用情况
    • 接收并处理来自RM的各种命令:启动Container
    • 处理来自AM的命令
    • 单个节点的资源管理
  • 3)ApplicationMaster: AM

    • 每个应用程序对应一个:MR、Spark,负责应用程序的管理
    • 为应用程序向RM申请资源(core、memory),分配给内部task
    • 需要与NM通信:启动/停止task,task是运行在container里面,AM也是运行在container里面
  • 4)Container

    • 封装了CPU、Memory等资源的一个容器
    • 是一个任务运行环境的抽象
  • 5)Client

    • 提交作业
    • 查询作业的运行进度
    • 杀死作业

大数据Hadoop之YARN_第1张图片

1)Client向RM提交作业(如MapReduce、Spark作业)。
2)RM为该作业分配第一个NM,与NM进行通信,要求在该NM上启动一个Container。
3)在分配的第一个Container上启动AM;
4)AM向RM进行注册,注册后Client就可以向RM查询作业的进度。同时AM向RM申请所需资源,RM告知后续的NM。
5)AM与后续的NM进行通信,告知需要的Container。
6)NM在需要的Container上执行任务。

  • 以上是一个通用流程:MapReduce AM、Spark AM

3.伪分布式下:YARN配置文件的修改

  • 我的配置文件路径为:/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop/
  • 1)mapred-site.xml
<property>
    <name>mapreduce.framework.namename>
    <value>yarnvalue>
property>
  • 2)yarn-site.xml
<property>
    <name>yarn.nodemanager.aux-servicesname>
    <value>mapreduce_shufflevalue>
property>

4.启动YARN

  • 1)YARN的环境变量同Hadoop,已设置(见《大数据Hadoop之环境搭建》),直接打命令启动YARN:
sbin/start-yarn.sh
  • 2)验证是否启动成功:
/** 1.查看进程:应该多了两个个
      ResourceManager、NodeManager */
jps

/** 2.本地的浏览器访问:http://chao:8088
      或 http://192.168.27.131:8088 */

5.启动YARN的过程中可能出现的问题

  • 启动后显示:192.168.27.131: Address 192.168.27.131 maps to bogon, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT! 但是看jps进程发现不影响YARN启动
  • 原因:Mac的网卡被占用,无线无法使用时,终端的主机名会自动变成bogon
  • 解决方法:在/etc/hosts文件加上192.168.27.131和对应的主机名。
  • 由此想到了mac配置hosts文件同理:sudo vi /etc/hosts

6.停止YARN

sbin/stop-yarn.sh

7.提交MapReduce作业到YARN上运行

  • 用自带的示例程序:/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar
// 命令是hadoop jar,三个参数是pi 2 3 
hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar pi 2 3 

你可能感兴趣的:(D_大数据,从零开始的大数据)