• 资源调度框架YARN介绍


    1、YARN架构

     图片来自: https://hadoop.apache.org/docs/r3.2.2/hadoop-yarn/hadoop-yarn-site/YARN.html

    1个RN(ResourceManager)和多个NM(NodeManager)

    ResourceManager职责: 一个集群active状态的RM只有一个,负责整个集群资源管理和调度

    1) 处理客户端的请求(启动/杀死)

    2) 启动/监控ApplicationMaster(一个作业对应一个AM)

    3)、监控NM

    4) 系统的资源分配和调度

    NodeManager职责: 整个集群有N个,负责单个节点的资源管理和使用以及task的运行情况

    1) 定期向RM汇报本节点的资源使用请求和各个Container的运行状态

    2) 接收并处理RM的container 启停的各种命令

    3) 单个节点的资源管理和任务管理

    ApplicationMaster职责: 每个应用/作业对应一个,负责应用程序的管理

    1) 数据切分

    2) 为应用程序向RM申请资源(Container),并分配给内部任务。

    3) 与NM通信以启停task, task是运行在container中的

    4) task的监控和容错

    Container职责

    对任务运行情况的描述: cpu、memory、环境参数

    2、YARN执行流程

    1) 用户向YARN提交作业

    2) RM为该作业分配第一个container(AM)

    3) RM会与对应的NM通信,要求NM在这个container上启动应用程序的AM

    4) AM首先向RM注册,然后AM将为各个任务申请资源,并监控运行情况

    5) AM采用轮询的方式通过RPC协议向RM申请和领取资源。

    6) AM申请到资源以后,便和相应的NM通信,要求NM启动任务。

    7) NM启动我们作业对应的task

    3、YARN环境搭建

    cd  /root/tools/hadoop-2.6.0/etc/hadoop

    1) mapred-site.xml

    cp mapred-site.xml.template  mapred-site.xml

    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    

      

    2) yarn-stie.xml

    vi yarn-site.xml

    <configuration>
       <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
       </property>
    
    </configuration>
    

      

    3) 启动yarn

    cd /root/tools/hadoop-2.6.0/sbin

    ./start-yarn.sh

    使用jps命令查看是否启动

    使用网页查看,端口8088

    4) 停止yarn

    ./stop-yarn.sh

    5) MapReduce作业提交到YARN上运行

    数据准备 /home/data 目录下hello.txt 文件,文件内容如下图所示:

    将hello.txt 放到hdfs里

    cd /root/tools/hadoop-2.6.0/bin

    创建文件夹/input/wc

    ./hadoop fs -mkdir -p /input/wc

    将hello.txt 放到/input/wc/文件夹下

    ./hadoop fs -put /home/data/hello.txt  /input/wc/

    查看文件内容

    /root/tools/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar

    cd /root/tools/hadoop-2.6.0/bin

    ./hadoop jar  /root/tools/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount  /input/wc/hello.txt   /output/wc/

    运行后查看

    。。。

    使用hadoop cdh5.7.0版本。其它配置和前一样。

    cd  /home/tools/hadoop-2.6.0-cdh5.7.0/bin

    ./hadoop jar  /home/tools/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar wordcount  /input/wc/hello.txt   /output/wc/

    使用web查看

     说明作业测处理状态是成功的。

    最终的单词统计结果如下图所示

     hello 单词有2个, welcome单词有2个,world单词有1个。

    作者:Work Hard Work Smart
    出处:http://www.cnblogs.com/linlf03/
    欢迎任何形式的转载,未经作者同意,请保留此段声明!

  • 相关阅读:
    java实现按对象某个字段排序,排序字段和规则自定义
    JVM调优
    Spring事务的5种隔离级别
    Spring的七种事务传播机制
    jdk动态代理和cglib动态代理的区别
    spring事务的开启方式(编程式和声明式)
    jetty启动(server-connector-handle-start-join)
    浅谈background-size的几个属性值
    如何解决各类尺寸移动端自适应的问题?
    如何实现一个盒子看起来缓慢消失切换到另一个页面的效果?
  • 原文地址:https://www.cnblogs.com/linlf03/p/14352262.html
Copyright © 2020-2023  润新知