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对比Storm和Hadoop
Hadoop |
Storm |
|
系统角色 |
JobTracker |
Nimbus |
TaskTracker |
Supervisor |
|
Child |
Worker |
|
应用名称 |
Job |
Topology |
组件接口 |
Mapper/Reducer |
Spout/Bolt |
q重要概念
ØNimbus:负责资源分配和任务调度
ØSupervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程
ØWorker:运行具体处理组件逻辑的进程
ØTask:worker中每一个spout/bolt的线程称为一个task。在storm0.8之后,task不再与物理线程对应,同一个spout/bolt的task可能会共享一个物理线程,该线程称为executor
qTopology
Østorm中运行的一个实时应用程序
Ø各个组件间的消息流动形成逻辑上的一个拓扑结构
qSpout
Ø在一个topology中产生源数据流的组件
Ø通常情况下spout会从外部数据源中读取数据,然后转换为topology内部的源数据
ØSpout是一个主动的角色,其接口中有个nextTuple()函数,storm框架会不停地调用此函数,用户只要在其中生成源数据即可
qBolt
Ø在一个topology中接受数据然后执行处理的组件
ØBolt可以执行过滤、函数操作、合并、写数据库等任何操作
ØBolt是一个被动的角色,其接口中有个execute(Tupleinput)函数,在接受到消息后会调用此函数,用户可以在其中执行自己想要的操作
qTuple
Ø一次消息传递的基本单元
Ø本来应该是一个key-value的map,但是由于各个组件间传递的tuple的字段名称已经事先定义好,所以tuple中只要按序填入各个value就行了,所以就是一个valuelist
qStream
Ø源源不断传递的tuple就组成了stream
qstreamgrouping
Ø即消息的partition方法
ØStorm中提供若干种实用的grouping方式,包括shuffle,fields hash, all, global, none, direct和localOrShuffle等
组件之间的关系
本次就学习这么多了,欢迎关注牛学汇共同学习
以上是关于YARN支持的计算框架的主要内容,如果未能解决你的问题,请参考以下文章