1.10.1大数据计算模式
MapReduce 是被大家所熟悉的大数据处理技术,当人们提到大数据时就会很自然地想到 MapReduce,可见其影响力之广。实际上,大数据处理的问题复杂多样,单一的计算是无法满足不同类型的计算需求的,MapReduce 其实只是大数据计算模式中的一种,它代表了针对大规模数据的批处理技术,除此之外,还有查询分析计算、图计算、流计算等多种大数据计算模式,见下表。
目前还没学批处理计算、流计算和图计算,后面再填坑。
大数据计算模式 | 解决问题 | 代表产品 |
批处理计算 | 针对大规模数据的批处理 | MapReduce、Spark等 |
流计算 | 针对流数据的实时计算 | Storm、S4、Flume、Streams、Puma、DStream、SuperMario、银河流数据处理平台等 |
图计算 | 针对大规模图结构数据的处理 | Pregel、GraphX、Giraph、PowerGraph、Hama、GoldenOrb等 |
查询分析计算 | 大规模数据的存储管理和查询分析 | Dremel、Hive、Gassandra、Impala等 |
1.10.1批处理计算
批处理计算主要解决针对大规模数据的批量处理,也是我们日常数据分析工作中非常常见的一类数据处理需求。MapReduce 是最具代表性和影响力的大数据批处理技术,可以并行执行大规模数据处理任务,用于大规模数据集( 大于1 TB) 的并行计算。MapReduce 极大地方便了分布式编程工作,它将复杂的,运行于大规模集群上的并行计算过程高度的抽象到了两个函数——Map和Reduce上,编程人员在不会分布式并行变成的情况下,也可以很容易地将自己的程序运行在分布式系统上,完成海量数据集的计算。
Spark 是一个针对超大数据集合的低延迟的集群分布式计算系统,比 MapReduce 快许多。Spark启用了内存分布数据集,除了能够提供交互式查询外,还可以优化迭代工作负载。在MapReduce中,数据流从一个稳定的来源进行一系列交加工处理后,流出到一个稳定的文件系统 (如 HDFS)。面对于Spark而言,则使用内存代替HDFS或本地磁盘来存储中间结果,因此Spark要比MapReduce的速度快许多。
1.10.2流计算
流数据也是大数据分析中的重要数据类型。流数据( 或数据流 )是指在时间分布和数量上无限的一系列动态数据集合体,数据的价值随着时间的流逝而降低,因此必须采用实时计算的方式给出秒级响应。流计算可以实时处理来自不同数据源的、连续到达的流数据,经过实时分析处理,给出有价值的分析结果。目前业内已涌现出许多的流计算框架与平台,第一类是商业级别的流计算平台,包括 IBM InfoSphere Streams 和 IBM Streambase 等;第二类是开源流计算框架,包括 Twitter Strom、Yahoo!S4 (Simple Scalabe Streaming System)、Spark Streaming 等;第三类是公司为支持自身业务开发的流计算框架,如 Facebook 使用Puma 和 HBase 相结合来处理实时数据,百度开发了通用实时流数据计算系统DStream,淘宝开发了通用流数据实时计算系统——银河流数据处理平台。
1.10.3 图计算
在大数据时代,许多大数据都是以大规模图或网络的形式呈现,如社交网络、 传染病传播途径、交通事故对网络的影响等,此外,许多非图结构的大数据也常常会被转换为图模型后在进行处理分析。MapReduce 作为单输入、两阶段、粗粒度数据并行的分布式计算框架,在表达多迭代,系数结构和细粒度数据时,往往显得力不从心,不适合用来解决大规模图计算问题,因此,针对大型图的计算、需要采用图计算模式,目前已经出现了不少相关图计算产品。Pregel是一种基于BSP( Bullk Synchronous Parallel) 模式实现的并行图处理系统。为了解决大型图的分布式计算问题, Pregel搭建了一套可扩展的、有容错机制的平台,该平台提供了一套非常灵活的API,可以描述各种各样的图计算。Pregel主要用于图遍历、最短路径、PageRank 计算等。其他代表性的图计算产品还包括Facebook 针对Pregel 的开源实现Giraph、Spark 下的 GraphX 、图数据处系统 PowerGraph 等。
1.10.4 查询分析计算
针对超大规模数据的存储管理和查询分析,需要提供实时或准时地响应,才能很好地满足企业经营管理者需求。谷歌公司开发的Dremel 是一种可扩展地、交互式地实时查询系统,用于只读嵌套数据得分析。通过结合多级树状执行过程和列式数据结构,它能做到几秒内完成对亿万张表的聚合查询。系统可以扩展到成千上万的CPU上,满足谷歌上万用户操作PB级的数据,并且可以在2~3s 内完成PB级别数据的查询。此外, Cloudera 公司参考 Dremel 系统开发了实时查询引擎 Impala,它提供SQL 语义,能快速查询存储在Hadoop 的HDFS 和HBase中的PB级大数据。
1.11 大数据产业
大数据产业是指一切与支撑啊的数据组织管理和价值发现相关的企业经济活动的集合。大数据产业包括 IT 基础设施层、数据源层、数据管理层、数据分析层、数据平台层和数据应用层、具体见下图
大数据产业链的各个环节 | |
产业链环节 | 包含内容 |
IT基础设施层 | 包括提供硬件、软件、网络等基础设施以及提供咨询、规划和系统集成服务的企业,比如,提供数据中心解决方案的 IBM、惠普和戴尔等,提供存储解决方案的 EMC,提供虚拟化管理软件的微软、思杰、SUN、Redhat等 |
数据源层 | 大数据生态圈里的数据提供者,是生物( 生物信息学领域的各类研究机构 )大数据、交通(交通主管部门)大数据、医疗(各大医院、体验机构 )大数据、政务( 政府部门 ) 大数据、电商( 淘宝、天猫、苏宁云商、京东等等电商) 大数据、社交网络( 微博、微信、人人网 ) 大数据、搜索引擎 ( 百度、谷歌等 )大数据等各种数据的来源 |
数据管理层 | 包括数据抽取、转换、存储和管理等服务的各类企业或产品,如分布式文件系统(如 Hadoop的HDFS 和谷歌的 GFS )、ETL工具 (Informatica、Datastage、Kettle 等)、数据库和数据仓库(Oracle、MySQL、SQL Server、HBase、GreenPlum 等) |
数据分析层 | 包括提供分布式计算,数据挖掘,统计分析等服务的各类企业或产品,如分布式计算框架MapReduce、统计分析软件 SPSS和SAS、数据挖掘工具Weka、数据可视化工具 Tableau、BI工具(MicroStrategy、Cognos、BO)等 |
数据平台层 | 包括提供数据分享平台、数据分析平台、数据租售平台等服务的企业或产品,如阿里巴巴、谷歌、中国电信、百度等。 |
数据应用层 | 提供智能交通、智慧医疗、智能物流、智能电网等行业应用的企业、机构或政府部门、如交通主管部门、各大医疗机构、菜鸟网络、国家电网等 |
----------------------------------------------------------------------------------------------------------
参考:《大数据技术原理与应用》第二版 林子雨