你好,游客 登录
背景:
阅读新闻

Hadoop之大数据平台基础(2)

[日期:2017-06-08] 来源: ITeye  作者: [字体: ]

  hadoop大数据平台基础(2)

  一、Map/Reduce工作机制分析-数据的流向分析

  在MspReduce算法核心框架中,待处理的数据最开始放在HDFS,然后会背诵网Map的各个节点,输出为中间键值对输出。然后呢,如何将中间数据交给Reduce呢,每个worker节点的分配规则呢?

大数据

  Shuffle:

  在Map计算完成后,将会让数据通过一个名为Shuffle的过程在最终交给Reduce处理。这个Shuffle就是我们处理Hadoop数据处理核心,他能够将分散在不同的map阶段worker节点上的数据进行洗牌并按照一定规则合并,组成新的格式后分配给Map节点worker节点处理数据。

  steps:

  1.map task procedure:imput split - map - buffer in momory

  2.buffer in memory: partition, sort and split to disk,partition是作为中间输出键值对的每个区间下,全局默认的所有节点的数据处理规则无序,每个区间内有序。通过该阶段,将分配处理各个区间,保存处理后的哥哥区间块到disk中。

  3.将处理好的各个区间中的数据进行合并merge,sort,统一交给Reduce,输出。

  Shuffle过程植入于Map端和Reduce端两边

  1. Map端工作:

  a. 分区:根据键值对的Key值,选定键值对所属的Partition区间(与Reduce节点对应)。

  b. 排序:对各分区内的键值对根据键进行排序。

  c. 分割:Map端的结果先是存放在缓冲区内的,如果超出,自然就要执行分割的处理,将一部分数据发往硬盘。

  d. 合并:对于要发送往同一个节点的键值对,我们需要对它进行合并。(这一步很可能针对硬盘,对于海量数据处理,缓冲区溢出是很正常的事情)

  2. Reduce端工作:

  a. Copy:以HTTP的方式从指定的Map端拉数据,注意是Map端的本地磁盘。

  b. 合并:一个Reduce节点有可能从多个Map节点获取数据,获取到之后

  c. 排序:对各分区内的键值对根据键进行排序。和Map端操作一样。

  二、错误处理机制

  对于Hadoop集群,但各节点的错误,不会影响到整理,各个分布式的任务仍然通过JodTracker跟踪分配处理。但是对于致命性的错误,一旦JobTracker主程序错误,Hadoop集群就更无法使用,只能从新启动。

  TaskTracker节点错误:

  JonTracker和TaskTracker的心跳机制:TaskTracker必须保证在1分钟之内向JobTracker回报当前节点的进度,

  1. 如果超时 仍然没有收到汇报,JobTracker仍然没有接收到汇报,就会将TaskTracker从等待调度队列集合移除。

  2.当收到报告但是是失败的,就会就爱你个这个TaskTracker移动到等待队列尾部重新排队,但是如果连续四次汇报失败,同样会移除。





收藏 推荐 打印 | 录入: | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款