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的运行过程
使用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支持的计算框架的主要内容,如果未能解决你的问题,请参考以下文章