13 - YARN支持的计算框架

Posted 牛学汇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了13 - YARN支持的计算框架相关的知识,希望对你有一定的参考价值。

qStorm On YARN服务

qApache Tez介绍

qTez实现原理


YARN-StormApplicationMaster


qStormApplicationMaster初始化时,将在同一个Container中启动StormNimbus和StormWeb UI两个服务

q根据待启动的Supervisor数目向ResourceManager申请资源qApplicationMaster将请求一个节点上所有资源然后启动Supervisor服务

q也就是说,当前Supervisor将独占节点而不会与其他服务共享节点资源,这种情况下可避免其他服务对Storm集群的干扰

qStormApplicationMaster还会启动一个ThriftServer以处理来自YARN-StormClient端的各种请求


当前Storm On YARN存在的问题


q难以将所有Storm服务运行在相邻的节点上,比如同一个机架上

q由于Nimbus服务运行在ApplicationMaster上,而一旦ApplicationMaster失败后,YARN会将它运行在另外一个节点上

  ØYARN需要提供一个ApplicationMaster或Nimbus位置获取服务,客户端直接通过该服务获取Nimbus位置即可qNodeManager本身无法支持动态升级


ApacheTez是什么


qTez是Apache开源的支持DAG作业的计算框架

q直接源于MapReduce框架,核心思想是将Map和Reduce两个操作进一步拆分

  ØMap被拆分成Input、Processor、Sort、Merge和OutputØReduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output

q分解后的元操作可以任意灵活组合,产生新的操作,这些操作经过一些控制程序组装后,可形成一个大的DAG作业

q天生融入Hadoop2.0中的资源管理平台YARN

qTez主要由两部分组成Ø数据处理引擎

  ØDAGAppMaster


传统的MR运行过程

q包括Hive,Pig和直接编写MR程序

采用Tez的运行过程

13 - YARN支持的计算框架


使用MapReduce和Tez解决WordCount问题


Tez特点

q与MapReduce兼容,继承了MapReduce的各种优点(比如良好的扩展性和容错性)

q运行在YARN之上

q适用于DAG(有向图)应用

  ØApache当前有顶级项目Oozie用于DAG作业设计,但Oozie是比较高层(作业层面)的

  ØTez在更底层提供了DAG编程接口,用户编写程序时直接采用这些接口进行程序设计,这种更底层的编程方式会带来更高的效率


Tez特点

q与MapReduce兼容,继承了MapReduce的各种优点(比如良好的扩展性和容错性)

q运行在YARN之上

q适用于DAG(有向图)应用

  ØApache当前有顶级项目Oozie用于DAG作业设计,但Oozie是比较高层(作业层面)的

  ØTez在更底层提供了DAG编程接口,用户编写程序时直接采用这些接口进行程序设计,这种更底层的编程方式会带来更高的效率


Tez数据处理引擎

qTez提供了6中可编程组件,实现了一些常见的算法和组件

  ØInput:对输入数据源的抽象,类似于MR模型中的InputFormat,它解析输入数据格式,并吐出一个个Key/value

  ØOutput:对输出数据源的抽象,类似于MR模型中的OutputFormat,它将用户程序产生的Key/value写入文件系统

  ØPartitioner:对数据进行分片,类似于MR中的Partitione

    ØProcessor:对计算单元的抽象,它从一个Input中获取数据,经用户定义的逻辑处理后,通过Output输出到文件系统

  ØTask:对任务的抽象,每个Task由一个Input、Ouput和Processor组成       ØMaser:管理各个Task的依赖关系,并按照依赖关系执行他们


就学习到这里了,关注牛学汇,共同学习





以上是关于13 - YARN支持的计算框架的主要内容,如果未能解决你的问题,请参考以下文章

阿里十年-大数据系列讲解之YARN

基于事件驱动的YARN并发模型

Yarn架构

spark(yarn模式)工作流程

hadoop|计算框架从MapReduce1.0到Yarn

09 | 为什么我们管Yarn叫作资源调度框架?