美文网首页
Hadoop技术内幕_YARN--YARN基础库

Hadoop技术内幕_YARN--YARN基础库

作者: 泽林呗 | 来源:发表于2017-09-21 20:32 被阅读0次

    Protocol Buffers

    Google开源的序列化库
    YARN将Protocol Buffers用到了RPC通信中,相比于MRv1的Writable,向后兼容性、扩展性等方面提高了很多
    编写一个Protocol Buffers应用需要以下三步:

    1. 定义消息格式文件,通常以proto作为扩展名
    2. 使用Google提供的Protocol Buffers编译器生成特定语言的代码文件
    3. 使用Protocol Buffers库提供的API来编写应用程序

    Apache Avro

    Avro是Hadoop生态系统中的RPC框架,具有平台无关、支持动态模式(无需编译)等优点
    目前,YARN采用Avro记录MapReduce应用程序日志(用于故障后台应用程序恢复)
    Avro相比Protocol Buffers有一下特点:

    • 支持动态模式,这有利于搭建通用的数据处理系统,同时避免了代码入侵
    • 数据无须加标签
    • 无须手工分配的域标识

    编写一个Avro应用需三步,同上

    RPC库

    image.png
    RPC总体架构
    1. 序列化层
    2. 函数调用层
    3. 网络传输层
    4. 服务器端处理框架
    Hadoop RPC类详解(主要由三大类组成,即RPC、Client、Server),分别对应对外编程接口、客户端实现和服务端实现
    1. ipc.RPC类分析
    2. ipc.Client类分析
    image.png
    1. ipc.Server类分析
      Hadoop RPC参数调优
      1 Reader线程数目
      2 每个Handler线程对应的最大Call数目
      3 Handler线程数目
      4 客户端最大重试次数
    YARN RPC实现(均由对象序列化和远程过程调用组成)
    1. 跨语言调用
    2. 引入IDL
    3. 协议兼容性

    服务库和事件库

    YARN将所有对象服务化,以便统一管理(创建、销毁等),而服务之间则采用事件机制进行通信,不再基于函数调用的方式

    服务库

    对于生命周期较长的对象,YARN采用了基于服务的对象管理模型对其进行管理,该模型主要有以下几个特点

    1. 将每个被服务的对象分为4个状态:NOTINITED(被创建)、INITED(已初始化)、STARTED(已启动)、STOPPED(已停止)
    2. 任何服务状态变化都可以触发另外一些动作
    3. 可通过组合的方式对任意服务进行组合,以便进行统一管理
    事件驱动带来的变化

    相比于基于函数调用的编程模型,这种编程方式具有异步,并发等特点,更加高效,因此更适合大型分布式系统

    状态机库

    状态机由一组状态组成,这些状态分为三类:初始状态、中间状态、最终状态

    相关文章

      网友评论

          本文标题:Hadoop技术内幕_YARN--YARN基础库

          本文链接:https://www.haomeiwen.com/subject/nliwsxtx.html