YARN支持的计算框架

Posted 牛学汇

tags:

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

YARN为核心的生态系统

q随着YARN的成熟和稳定,各类应用程序可以运行在一个YARN集群中进行统一资源管理和调度

q框架运行在YARN上的好处

Ø应用程序部署变得更简单
      只需部署YARN服务,各类应用不再自带服务

Ø服务部署变得更简单
      用户可以运行一个应用程序的方式部署一套服务Ø多版本共享集群资源
Cgroups隔离机制

Ø资源弹性管理
      YARN
可根据不同类型的应用程序压力情况,调整对应的资源使用量,实现资源弹性管理


行在YARN的计算框架


q目前支持的计算框架

ØMapReduceOn YARN
       YARN的离线计算,YARN发行版中自带实现

ØSpark On YARN
       YARN上的内存计算

ØStorm On YARN
       YARN上的实时/流式计算

ØTez OnYARN
       YARN上的DAG计算

q将来支持的框架

ØHbase

ØMPI

ØGiraph

ØBSPKafka 


流式计算Storm

q流式(Streaming)计算

q指被处理的数据像流水一样不断流入系统,而系统需要针对每条数据进行实时处理和计算,并永不停止(直到用户显式杀死进程)

q分布式实时计算系统

q应用场景

Ø流数据处理
Storm可以用来处理不断流进来的消息,处理之后将结果写入某个存储中

Ø分布式rpc
由于storm的处理组件是分布式的,而且处理延迟极低,所以可以作为一个通用的分布式rpc框架来使用

Storm基本概念

q对比StormHadoop


Hadoop

Storm

系统角色

JobTracker

Nimbus


TaskTracker

Supervisor


Child

Worker

应用名称

Job

Topology

组件接口

Mapper/Reducer

Spout/Bolt

q重要概念

ØNimbus:负责资源分配和任务调度

ØSupervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程

ØWorker:运行具体处理组件逻辑的进程

ØTaskworker中每一个spout/bolt的线程称为一个task。在storm0.8之后,task不再与物理线程对应,同一个spout/bolttask可能会共享一个物理线程,该线程称为executor

qTopology

Østorm中运行的一个实时应用程序

Ø各个组件间的消息流动形成逻辑上的一个拓扑结构

qSpout

Ø在一个topology中产生源数据流的组

Ø通常情况下spout会从外部数据源中读取数据,然后转换为topology内部的源数据

ØSpout是一个主动的角色,其接口中有个nextTuple()函数,storm框架会不停地调用此函数,用户只要在其中生成源数据即可

qBolt

Ø在一个topology中接受数据然后执行处理的组件

ØBolt可以执行过滤、函数操作、合并、写数据库等任何操作

ØBolt是一个被动的角色,其接口中有个execute(Tupleinput)函数,在接受到消息后会调用此函数,用户可以在其中执行自己想要的操作

qTuple

Ø一次消息传递的基本单元

Ø本来应该是一个key-valuemap,但是由于各个组件间传递的tuple的字段名称已经事先定义好,所以tuple中只要按序填入各个value就行了,所以就是一个valuelist

qStream

Ø源源不断传递的tuple就组成了stream

qstreamgrouping

Ø即消息的partition方法

ØStorm中提供若干种实用的grouping方式,包括shuffle,fields hash, all, global, none, directlocalOrShuffle

组件之间的关系


本次就学习这么多了,欢迎关注牛学汇共同学习


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

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

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

Yarn架构

spark(yarn模式)工作流程

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

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