1、 Big Data一、一、处理工作量处理工作量大数据的处理工作量大数据的处理工作量:被定义为一定时间内处理数据的性质与数量。被定义为一定时间内处理数据的性质与数量。处理工作量主要分为批处理和事务两种类型处理工作量主要分为批处理和事务两种类型。(1)批处理型。)批处理型。也称为脱机处理,这种方式通常成批地处理数据,也称为脱机处理,这种方式通常成批地处理数据,因而会导致较大的延迟。通常我们采用批处理完成大数据有序的读因而会导致较大的延迟。通常我们采用批处理完成大数据有序的读/写操写操作,这些读作,这些读/写查询通常是成批的写查询通常是成批的。(2)事务型。)事务型。也称为在线处理,这种处理方式通过
2、无延迟的交互式也称为在线处理,这种处理方式通过无延迟的交互式处理使得整个回应延迟很小。事务型处理一般适用于少量数据的随机读处理使得整个回应延迟很小。事务型处理一般适用于少量数据的随机读/写写操作。操作。Big Data二、二、批处理模式批处理模式特征:特征:批处理批处理模式中,数据总是成批地脱机处理,响应时长从几分钟到几模式中,数据总是成批地脱机处理,响应时长从几分钟到几小时不等。在这种情况下,数据被处理前必须在磁盘上保存。批处理模式适用小时不等。在这种情况下,数据被处理前必须在磁盘上保存。批处理模式适用于庞大的数据集,无论这个数据集是单个的还是由几个数据集组合而成的,该于庞大的数据集,无论这
3、个数据集是单个的还是由几个数据集组合而成的,该模式可以本质上解决大数据数据量大和数据特性不同的问题。模式可以本质上解决大数据数据量大和数据特性不同的问题。优势:优势:批处理批处理是大数据处理的主要方式,相较于实时模式,它比较简单,是大数据处理的主要方式,相较于实时模式,它比较简单,易于建立,开销也比较小。像商务智能、预测性分析与规范性分析、易于建立,开销也比较小。像商务智能、预测性分析与规范性分析、ETL操作,操作,一般都采用批处理模式。一般都采用批处理模式。Big Data二、二、批处理模式批处理模式1.MapReduce1.MapReduce批处理批处理 MapReduceMapReduc
4、e是一种编程模型,用于大规模数据集(大于是一种编程模型,用于大规模数据集(大于1TB1TB)的并行)的并行运算。运算。概念概念MapMap(映射)(映射)和和ReduceReduce(归约)(归约),是它们的主要思想,是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。序运行在分布式系统上。当前当前的软件实现是指定一个的软件实现是指定一个MapMap(映射)函数
5、(映射)函数,用来把一组键值对,用来把一组键值对映射成一组新的键值对,指定并发的映射成一组新的键值对,指定并发的ReduceReduce(归约)函数(归约)函数,用来保证所,用来保证所有映射的键值对中的每一个共享相同的键组。有映射的键值对中的每一个共享相同的键组。Big DataMapReduceMapReduce提供了以下的主要提供了以下的主要功能:功能:1 1)数据划分和计算任务调度)数据划分和计算任务调度2 2)数据)数据/代码互定位代码互定位3 3)系统优化)系统优化4 4)出错检测和恢复)出错检测和恢复二、二、批处理模式批处理模式1.MapReduce1.MapReduce批处理批处
6、理MapReduceMapReduce设计上具有以下主要的技术特征:设计上具有以下主要的技术特征:1 1)向)向“外外”横向扩展,而非向横向扩展,而非向“上上”纵向扩展纵向扩展2 2)失效被认为是常态)失效被认为是常态3 3)把处理向数据迁移)把处理向数据迁移4 4)顺序处理数据、避免随机访问数据)顺序处理数据、避免随机访问数据5 5)为应用开发者隐藏系统层细节)为应用开发者隐藏系统层细节6 6)平滑无缝的可)平滑无缝的可扩展性扩展性 Big Data执行步骤二、二、批处理模式批处理模式1.MapReduce1.MapReduce批处理批处理 Big DataMapReduceMapReduc
7、e是面向大数据并行处理的计算模型、框架和是面向大数据并行处理的计算模型、框架和平台。平台。它它隐含隐含了三了三层含义层含义:二、二、批处理模式批处理模式1.MapReduce1.MapReduce批处理批处理1)MapReduce是一个基于集群的高性能并行计算平台。是一个基于集群的高性能并行计算平台。2)MapReduce是一个并行计算与运行软件框架。是一个并行计算与运行软件框架。3)MapReduce是一个并行程序设计模型与方法。是一个并行程序设计模型与方法。Big Data 一一次次MapReduceMapReduce处理引擎的运行被称为处理引擎的运行被称为MapReduceMapRedu
8、ce作业,它由映射作业,它由映射(MapMap)和归约()和归约(ReduceReduce)两部分任务组成,这两部分任务又被分为多个)两部分任务组成,这两部分任务又被分为多个阶段阶段。一个作业一个作业 =映射映射+归约归约 其中其中映射任务被分为映射(映射任务被分为映射(mapmap)、合并()、合并(combinecombine)和分区)和分区(partitionpartition)三个阶段,合并阶段是可选的;归约任务被分为洗牌和)三个阶段,合并阶段是可选的;归约任务被分为洗牌和排排序(序(shuffle and sortshuffle and sort)与归约()与归约(reducered
9、uce)两)两个阶段个阶段。映射映射=映射映射+合并合并+分区分区 归约归约=洗牌洗牌和和排序排序+归约归约二、二、批处理模式批处理模式2.Map和Reduce任务 Big Data(1 1)映射。)映射。MapReduceMapReduce的第的第一个阶段称为映射。映射阶一个阶段称为映射。映射阶段首先把大的数据文件分割段首先把大的数据文件分割成多个小数据文件。每个较成多个小数据文件。每个较小的数据文件的每条记录都小的数据文件的每条记录都被解析为一组键被解析为一组键-值对,通常值对,通常键表示其对应记录的序号,键表示其对应记录的序号,值则表示该记录的实际值。值则表示该记录的实际值。数据在映射阶
10、段的变化数据在映射阶段的变化二、二、批处理模式批处理模式1.MapReduce1.MapReduce批处理批处理 Big Data(2 2)合并。)合并。在在MapReduceMapReduce模型中,模型中,映射任务与归约任务分别在不同映射任务与归约任务分别在不同的节点上进行,而映射模块的输的节点上进行,而映射模块的输出需要被送到归约模块处理,这出需要被送到归约模块处理,这就要求把数据由映射任务节点传就要求把数据由映射任务节点传输到归约任务节点,这个过程往输到归约任务节点,这个过程往往会消耗大量的带宽,并直接导往会消耗大量的带宽,并直接导致处理延时。因此就要对大量的致处理延时。因此就要对大量
11、的键键-值对进行合并,以减少这些消值对进行合并,以减少这些消耗。耗。数据在合并阶段的变化二、二、批处理模式批处理模式2.Map和Reduce任务 Big Data(3 3)分区。)分区。在这个阶段,当使用在这个阶段,当使用多个归约模块时,多个归约模块时,MapReduceMapReduce模型模型就需要把映射模块或合并模块就需要把映射模块或合并模块(如果该(如果该MapReduceMapReduce引擎指明调用引擎指明调用合并功能)的输出分配给各个归合并功能)的输出分配给各个归约模块。在此我们把分配到每个约模块。在此我们把分配到每个归约模块的数据叫做一个分区,归约模块的数据叫做一个分区,也就是
12、说,分区数与归约模块数也就是说,分区数与归约模块数是相等的是相等的。图中图中描述描述了数据在分了数据在分区阶段的变化。区阶段的变化。数据在分区阶段的变化二、二、批处理模式批处理模式2.Map和Reduce任务 Big Data(4 4)洗牌和排序。)洗牌和排序。洗牌包括由分区洗牌包括由分区模块将数据传输到归约模块的整个模块将数据传输到归约模块的整个过程,是归约任务的第一个阶段。过程,是归约任务的第一个阶段。由分区模块传输来的数据可能存在由分区模块传输来的数据可能存在多条记录对应同一个键。这个模块多条记录对应同一个键。这个模块将把对应同一个键的记录进行组合,将把对应同一个键的记录进行组合,形成一
13、个唯一键对应一组值的键形成一个唯一键对应一组值的键-值值对列表。随后该模块对所有的键对列表。随后该模块对所有的键-值值对进行排序。组合与排序的方式在对进行排序。组合与排序的方式在此可由用户自定义此可由用户自定义。数据在洗牌和排序阶段的变化二、二、批处理模式批处理模式2.Map和Reduce任务 Big Data(5 5)归约。)归约。这是归约任务这是归约任务的最后一个阶段,该模块的最后一个阶段,该模块的逻辑由用户自定义,它的逻辑由用户自定义,它可能对输入的记录进行进可能对输入的记录进行进一步分析归纳,也可能对一步分析归纳,也可能对输入不作任何改变。在任输入不作任何改变。在任何情形下,这个模块都
14、在何情形下,这个模块都在处理当条记录的同时将其处理当条记录的同时将其他处理过的记录输出他处理过的记录输出。数据在归约阶段的变化数据在归约阶段的变化二、二、批处理模式批处理模式3.MapReduce简单实例简单实例 Big Data二、二、批处理模式批处理模式3.MapReduce简单实例简单实例 Big DataMapReduceMapReduce采用了采用了“分治分治”的的原则:原则:(1 1)任务任务并行:并行:任务并行指的是将一个任务分为多个子任务在不同节点上并任务并行指的是将一个任务分为多个子任务在不同节点上并行进行,通常并行的子任务采用不同的算法,每个子任务的输入数据可以相行进行,通
15、常并行的子任务采用不同的算法,每个子任务的输入数据可以相同也可不同,最后多个子任务的结果组成最终结果。同也可不同,最后多个子任务的结果组成最终结果。(2 2)数据数据并行:并行:数据并行指的是将一个数据集分为多个子数据集在多个节点数据并行指的是将一个数据集分为多个子数据集在多个节点上并行地处理,数据并行的多个节点采用同一算法,最后多个子数据集的处上并行地处理,数据并行的多个节点采用同一算法,最后多个子数据集的处理结果组成最终结果。理结果组成最终结果。二、二、批处理模式批处理模式4.理解理解MapReduce算法算法 Big Data三、三、SCVSCV原则原则(1)速度()速度(Speed):
16、是指数据一旦生成后处理的快慢。是指数据一旦生成后处理的快慢。(2)一致性()一致性(Consistency):指处理结果的准确度与精度。指处理结果的准确度与精度。(3)容量()容量(Volume):指系统能够处理的数据量。指系统能够处理的数据量。SCV原则:要求设计一个分布式数据处理系统时仅需满是以下原则:要求设计一个分布式数据处理系统时仅需满是以下3项要求中的项要求中的2项项。Big Data纠结之处纠结之处三、三、SCVSCV原则原则 Big Data实时处理示例实时处理示例(1 1)在数据传输引擎获取流式数据。)在数据传输引擎获取流式数据。(2 2)数据同时被传输到内存设备()数据同时被
17、传输到内存设备(a a)与磁盘)与磁盘设备设备(b b)。)。(3 3)数据处理引擎以实时模式处理存储在内存的数据。)数据处理引擎以实时模式处理存储在内存的数据。(4 4)处理结果被送到仪表板供操作分析。)处理结果被送到仪表板供操作分析。四、实时处理模式四、实时处理模式 Big Data通通常常MapReduce不适合大数据不适合大数据实时处理:实时处理:首先首先,MapReduce作业的建立与协调时间开销过大作业的建立与协调时间开销过大;其次其次,MapReduce主要适用于批处理已经存储到磁盘上的数据,这与实时处理不同;最主要适用于批处理已经存储到磁盘上的数据,这与实时处理不同;最后后Ma
18、pReduce处理的数据是完整的,而非增量的,而实时处理的数据往往是不完整的,以数处理的数据是完整的,而非增量的,而实时处理的数据往往是不完整的,以数据流的方式不断传输到处理系统。据流的方式不断传输到处理系统。另外,另外,MapReduce中的归约任务必须等待所有映射任务完成后再开始。首先,每个映射中的归约任务必须等待所有映射任务完成后再开始。首先,每个映射函数的输出被存储到每个映射任务节点。然后,映射函数的输出通过网络传播到归约任务节函数的输出被存储到每个映射任务节点。然后,映射函数的输出通过网络传播到归约任务节点,作为归约函数的输入,数据在网络中的传播将导致一定的时延。另外要注意归约节点之点,作为归约函数的输入,数据在网络中的传播将导致一定的时延。另外要注意归约节点之间不能相互直接通信,必须依靠映射节点传输数据,这是间不能相互直接通信,必须依靠映射节点传输数据,这是MapReduce的固定流程的固定流程。四、实时处理模式四、实时处理模式