• YARN HA部署架构


    hadoop001: zk rm(zkfc线程)  nm
    hadoop002: zk rm(zkfc线程)  nm
    hadoop003: zk              nm
    
    
    RMStateStore: 存储在ZK的/rmstore目录下
    
    ZKFC仅仅是线程
    
    大数据的数据是不能丢的,但是作业是可以挂的,挂了重启即可.因此YARN的架构比较轻量级,HDFS的架构相对来说,比较重量级别.
    
    小结:
    当我们RM进程启动后,会向ZK发一个look lck文件,写成功的话,是active状态,写失败,会是standby, rm节点会监控look文件的存在,如果不存在,就会试图创建look文件,谁创建成功,谁就是active状态. 同时,rm会接收client的请求,接收和监控NM的资源状态的汇报,然后负责资源的分配和调度. 然后它(NM)会启动和监控AM.
    
    NM向active汇报后,还会向standby汇报呢?  不需要
    
    ZKFC: 线程,只作为RM进程的一个线程,而非独立的进程存在. 没有必要搞资源的消耗
    RMStateStore: 存储在zk的/rmstore目录下. 
    1. active的RM会向这个目录写APP信息
    2. 当active RM 挂了,另外一个standby RM通过ZKFC选举成功为active,会从/rmstore目录读取相应的作业信息,重新构建作业的内存信息,启动内部的服务,开始接收NM的心跳,构建集群的资源信息,并且接受客户端的作业提交请求
    
    
    RM 进程:
    1. 启动的时候会向ZK的/rmstore目录写lock文件,写成功就为active,否则,就是是tandby. RM节点ZKFC会一直监控(通过心跳)这个lock文件的是否存在,假如不存在,就为active, 否则,就为standby
    22: 15 配置 http://hadoop.apache.org/docs/r2.6.5/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
    2. 接收client的请求,接收和监控NM的资源状况的汇报,负责资源的分配和调度
    3. 启动和监控我们的AM,AM是跑在NM节点的Container上. 
     ApplicationsManager 运行在RM中
     ApplicationMaster   运行在NM中的Container容器里  作业的主程序
    
    
    NM:
    节点资源的管理 启动容器运行task计算    上报资源    汇报task进度
    
    
    要点:
    1. ZKFC是进程还是线程?  线程, HDFS中的是进程
    2. /rmstore存储在哪里? 
        yarn.resourcemanager.zk-state-store.parent-path
    
    

    YARN-HA

  • 相关阅读:
    深入理解JVM之JVM内存区域与内存分配
    Spring MVC配置文件的三个常用配置详解
    spring Bean类自动装载实现
    深入理解Java之线程池
    java 通过反射机制调用某个类的方法
    InvocationHandler中invoke()方法的调用问题
    线程 synchronized锁机制
    Java 并发编程:volatile的使用及其原理
    Java 修饰符
    Set、List、Map的区别和联系
  • 原文地址:https://www.cnblogs.com/suixingc/p/yarn-ha-bu-shu-jia-gou.html
Copyright © 2020-2023  润新知