大数据培训讲义;目录;大数据起源-Google三篇;三个层面上的基本构思
如何对付大数据处理:分而治之
对相互间不具有计算依赖关系的大数据,实现并行最自然的办法就是采取分而治之的策略
上升到抽象模型:Mapper与Reducer
MPI等并行计算方法缺少高层并行编程模型,为了克服这一缺陷,MapReduce借鉴了Lisp函数式语言中的思想,用Map和Reduce两个函数提供了高层的并行编程抽象模型
上升到构架:统一构架,为程序员隐藏系统层细节
MPI等并行计算方法缺少统一的计算框架支持,程序员需要考虑数据存储、划分、分发、结果收集、错误恢复等诸多细节;为此,MapReduce设计并提供了统一的计算框架,为程序员隐藏了绝大多数系统层面的处理细节;Google MapReduce的基本模型和处理思想;建立Map和Reduce抽象模型
典型的流式大数据问题的特征
大量数据记录/元素进行重复处理
对每个数据记录/元素作感兴趣的处理、获取感兴趣的中间结果信息
排序和整理中间结果以利后续处理
收集整理中间结果
产生最终结果输出;建立Map和Reduce抽象模型
借鉴函数式程序设计语言Lisp中的思想,定义了Map和Reduce两个抽象的操作函数:
map: (k1; v1) ? [(k2; v2)]
reduce: (k2; [v2]) ? [(k3; v3)]
特点:
描述了对一组数据处理的两个阶段的抽象操作
;上升到构架--自动并行化并隐藏低层细节;Barrier;Google MapReduce并行处理的基本过程
;Google MapReduce并行处理的基本过程
;Google MapReduce并行处理的基本过程
;Google MapReduce并行处理的基本过程
;Google MapReduce并行处理的基本过程
;存储位置的计算策略
策略
MapReduce的master在调度Map任务时会考虑输入文件的位置信息,尽量将一个Map任务调度在包含相关输入数据拷贝的机器上执行;如果上述努力失败了,master将尝试在保存有输入数据拷贝的机器附近的机器上执行Map任务(例如,分配到一个和包含输入数据的机器在一个switch里的worker机器上执行)。当在一个足够大的cluster集群上运行大型MapReduce操作的时候,大部分的输入数据都能从本地机器读取,因此消耗非常少的网络带宽。。;失效处理
主节点失效
主节点中会周期性地设置检查点(checkpoint),检查整个计算作业的执行情况,一旦某个任务失效,可以从最近有效的检查点开始重新执行,避免从头开始计算的时间浪费。
工作节点失效
工作节点失效是很普遍发生的,主节点会周期性地给工作节点发送检测命令,如果工作节点没有回应,这认为该工作节点失效,主节点将终止该工作节点的任务并把失效的任务重新调度到其它工作节点上重新执行;Counter
MapReduce库使用计数器统计不同事件发生次数。比如,用户可能想统计已经处理了多少个单词、已经索引的多少篇文档。
这些计数器的值周期性的从各个单独的worker机器上传递给master(附加在ping的应答包中传递)。master把执行成功的Map和Reduce任务的计数器值进行累计,当MapReduce操作完成之后,返回给用户代码;
;
;
;目录;基本问题
海量数据怎么存储?数据存储可靠性怎么解决?
当前主流的分布文件系统有:
RedHat的GFS
IBM的GPFS
Sun的Lustre等
主要用于对硬件设施要求很高的高性能计算或大型数据中心;
价格昂贵且缺少完整的数据存储容错解决方案
如Lustre只对元数据管理提供容错处理,但对于具体的分布存储节点,可靠性完全依赖于这些分布节点采用RAID或存储区域网(SAN)技术提供容错,一旦分布节点失效,数据就无法恢复。;Google GFS的基本设计原则
Google GFS是一个基于分布式集群的大型分布式文件系统,为MapReduce计算框架提供低层数据存储和数据可靠性支撑;
GFS是一个构建在分布节点本地文件系统之上的一个逻辑上文件系统,它将数据存储在物理上分布的每个节点上,但通过GFS将整个数据形成一个逻辑上整体的文件。
;Google GFS的基本设计原则
廉价本地磁盘分布存储
各节点本地分布式存储数据,优点是不需要采用价格较贵的集中式磁盘阵列,容量可随节点数增加自动增加
多数据自动备份解决可靠性
采用廉价的普通磁盘,把磁盘数据出错视为常态,用自动多数据备份存储解决数据存储可靠性问题
为上层的MapReduce计算框架提供支撑
GFS作为向上层MapRed
原创力文档

文档评论(0)