大数据运算系统一

Posted

tags:

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

 目录

一、MapReduce/Hadoop

1.编程模型

2.系统实现

3.典型算法

二、Microsoft Dryad

(本文为陈世敏老师课程笔记)

----------------------------------------

一、MapReduce/Hadoop

Google 2014年推出。

1.编程模型

  整体思路:程序员串行写程序 ,系统分布式并行完成,但要有很多限制,牺牲程序的功能。

  数据模型:<key,value> 记录之间无序。

  MapReduce执行过程:

  +Map(ik, iv) ->{<mk, mv>} 输入是一个记录,输出0~多个

  +shuffle 系统完成,等于group by mk <mk,{mv} list>

  + Reduce(mk, {mv}) ->{<ok, ov>} 

  word count 为例子:  

技术分享

技术分享

技术分享

技术分享 

2.系统实现

2.1 架构组成

  JobTracker:控制协调作业的运行
  TaskTracker:执行Map Task 或Reduce Task

  包括Map函数、Reduce函数(Jar)、配置信息(例如,几个Mappers,几个Reducers)、输入路径、输出路径等

技术分享

2.2 处理过程

  (1)Split代表一个HDFS数据块,Split的个数可能多于Mapper的个数,每个split对应一个Map Task,每个Mapper需要处理多个Task.JobTracker采用就近原则,让机器尽量处理本机,减少网络传输。

  (2)对于每个记录,调用一次Map函数生成<mk,mv>,每个mk调用partitioner(可以是Hash Partitioner)计算对应的Reduce task id,属于同一个id从小到达,存储在同一个本地硬盘文件。

  (3)Mapper一端对重复mk进行本地累计,即collection,减少网络传输。

  (4)Reducer从Mapper得到数据,由于每个文件已经排序,对多个结果进行归并实现group by.

   (5)Reduce对每一项调用一次Reduce函数-> OutputFormat

技术分享

技术分享

2.3 Fault Tolerance 容错

  JobTracker发现宕机会把任务分配给另一个worker。

  +如果Mapper宕机,其split分配给其它Mapper,通知所有Reduce这些splite对应的新Mapper

  +如果Reduce宕机,新的Reducer重新从Mappers传输数据。

3.典型算法

3.1 Grep 找到符合特定模式的文本

技术分享

3.2 sorting

技术分享

3.3 Equi-join

技术分享

二、Microsoft Dryad

技术分享

 


以上是关于大数据运算系统一的主要内容,如果未能解决你的问题,请参考以下文章

大数据学习之路-hdfs

大数据+物联网智能交通系统

Oracle批量更新根据一个大表批量更新另一大表的方法比较

大数据时代的遨游

大数据技术Hadoop——YARN

大数据的概述