hadoop+yarn+hdfs+hive+hbase+sql

可以支持多种计算框架运行在YARN上面,比如MapReduce、Storm、Spark、Flink等

(1)Client向ResourceManager提交作业(可以是Spark/Mapreduce作业)

(2)ResourceManager会为这个作业分配一个container

(3)ResourceManager与NodeManager通信,要求NodeManger在刚刚分配好的container上启动应用程序的Application Master

(4)Application Master先去向ResourceManager注册,而后ResourceManager会为各个任务申请资源,并监控运行情况

(5)Application Master采用轮询(polling)方式向ResourceManager申请并领取资源(通过RPC协议通信)

  (6) Application Manager申请到了资源以后,就和NodeManager通信,要求NodeManager启动任务

      最后,NodeManger启动作业对应的任务。

YARN的设计是为了解决MapReduce1.0中的一些缺陷。

    存在单点故障。
    JobTracker“大包大揽”导致任务过重(任务多时内存开销大,上限4000节点)。
    容易出现内存溢出(分配资源只考虑MapReduce任务数,不考虑CPU、内存)。
    资源划分不合理(强制划分为slot ,包括Map slot和Reduce slot)。
注意:applicationmaster将监听每一个nodemanager执行的情况并随时汇报给resourcemanager,知道最后任务执行完成,将回收所有的资源,如果发现有任务执行失败,则由applicationmaster来协调,减轻了resourcemanager的负担,如果applicationmaster在运行过程中出问题,resourcemanager没有接收心跳后,会再在所有nodemanager节点中选择一个节点来启动applicationmaster来继续工作。

当客户端向 HDFS 文件写入数据的时候,一开始是写到本地临时文件中。假设该文件的副本系数设置为 3 ,当本地临时文件累积到一个数据块的大小时,客户端会从 Namenode 获取一个 Datanode 列表用于存放副本。然后客户端开始向第一个 Datanode 传输数据,第一个 Datanode 一小部分一小部分 (4 KB) 地接收数据,将每一部分写入本地仓库,并同时传输该部分到列表中 第二个 Datanode 节点。第二个 Datanode 也是这样,一小部分一小部分地接收数据,写入本地 仓库,并同时传给第三个 Datanode 。最后,第三个 Datanode 接收数据并存储在本地。因此, Datanode 能流水线式地从前一个节点接收数据,并在同时转发给下一个节点,数据以流水线的 方式从前一个 Datanode 复制到下一个

block持续化结构:

命令  https://www.cnblogs.com/sdksdk0/p/5585047.html

MapReduce

hive

hbase

sql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值