大数据的特点及处理平台比较
许吴环
[摘 要] 大数据环境下传统的数据处理方式不再适用,以云计算技术为支撑的大数据处理平台的出现为落实大数据应用提供了可行思路。为此,在归纳了开源Hadoop和Spark平台各自优缺点后,指出其应用场景,以更好地利用大数据。通过比较常用大数据平台发现,Hadoop适用于数据密集型任务,并广泛应用于离线分析。Spark因其基于内存的计算,在迭代计算和实时分析领域占据优势。并发现他们在功能上有较强的互补性,有时二者协同使用可以优化效益,Spark和许多Hadoop发行版已经互相支持实现。经过此项探讨工作,期望有利于选择和实施大数据处理平台,实现大数据资源的更大价值。
[关键字] 大数据特点;大数据平台;比较研究
[中图分类号] TP202 [文献标识码] A [文章编号] 1002-8129(2017)01-0103-04
一、大数据的特点与处理平台概述
1.大数据的特点。
目前,大数据还没有一个标准的定义,但是把握大数据的特征,有助于加深对大数据内涵的理解。数据具有的3V特征,即规模大(Volume)、种类多(Variety)、速度快(Velocity),在业内已经基本成为统一认识。规模大,意味着数据量不断扩张,数据量级将从现在的GB、TB增长到PB、EB甚至达到ZB级。种类多,是指数据类型有结构化、半结构化和非结构化,其中文字、图片、音频、视频等非结构化数据占更大比例。速度快,表示大数据有强时效性,数据通常快速地产生,又需要及时地进行处理分析,才能有效地实现大数据的经济价值。
“大数据的处理过程可以分为:数据抽取与集成、数据分析以及数据解释”[1]。巨量的数据往往也意味着噪音的增多,这给预处理数据时数据的清洗工作造成了困难。传统的关系型数据库处理对象单位通常为MB,并且适合存储结构化数据,面向大数据的数据库技术应该能够解决海量非结构数据的存储问题。传统的数据分析方法以算法的准确率作为最重要的衡量指标,而大数据的高速性要求算法必须牺牲一部分准确性以达到更高效地处理数据。大数据的分析结果往往也是大量的,故小数据量时可以选择的数据解释方法基本不再适用,引入可视化技术来将大数据的分析结果以友好的形式展现。
2.大数据处理平台发展概述。
为了应对大数据处理上的挑战,“从规模巨大、种类繁多、生成快速的数据集中挖掘价值”[2],专门针对大数据的技术和方法应运而生。GFS、NoSQL、ITHbase、MapReduce等云计算技术的发展,使得大数据的有效存储、管理和分析成为可能。但是从众多复杂的大数据技术中进行选择,并搭建完备的大数据处理框架难度很高,不利于挖掘大数据中的经济价值。大数据平台和产品的出现,可以使用户在不了解架构底层细节的情况下,开发大数据应用程序。全球领先的科技巨头都纷纷在制定大数据战略时提出了建设与应用大数据处理平台:IBM公司推出了云端版InfoSphere BigInsights[3];HP推出了HP Vertica6.1分析平台[4];Google提出的GFS、MapReduce等云计算技术催生了大数据处理平台的事实标准Hadoop,目前,Google使用的是自己开发的Caffeine[2];Facebook结合自身的使用需求实现了Corona、Prism。一个完备、高效的大数据处理平台为实施大数据应用提供一站式的基础服务,支持应用系统从清洗、集成、分析到结果可视化展现的大数据处理全过程建设,降低了用户技术门槛[5]。因此,比较和选择有大数据特征的处理平台,有助于大数据技术研发和产业落地,实现大数据的巨大价值。
二、常用大数据处理平台比较
1.Hadoop
Hadoop是由Apache开发的开源云计算平台,实现在大量计算机组成的集群中进行分布式存储和计算。Hadoop框架最核心的技术是HDFS和MapReduce。HDFS是可以部署在廉价机器上的分布式文件系统,采用主/从结构,将大文件分割后形成大小相等的block复制三份,分别存储在不同的节点上,实现了海量数据的存储。MapReduce编程模型实现大数据处理,它的核心是“分而治之”[1]。Map任务区将输入数据源分块后,分散给不同的节点,通过用户自定义的Map函数,得到中间key/Value集合,存储到HDFS上。Reduce任务区从硬盘上读取中间结果,把相同K值的数据组织在一起,再经过用户自定义的Reduce函數处理,得到并输出最终结果。将对巨量资料的处理并行地运行在集群上,从而实现了对大数据的有效处理。从Hadoop的核心处理过程我们可以总结出它具有如下优点[6-9]:
高扩展性。Hadoop的横向扩展性能很好,使海量数据能横跨几百甚至上千台服务器,而用户使用时好像只是面对一个。大量计算机并行工作,使对大数据的处理能在合理的时间内完成并得以应用,这是在传统单机模式下无法实现的。
高容错性。从HDFS的设计中可以看出,它通过提供数据冗余的方式提供高可靠性。当某个数据块损坏或丢失,NameNode就会将其他DataNode上的副本进行复制,保证每块都有三份。所以,在数据处理过程中,当集群中机器出现故障,计算并不会停止。
节约成本。首先,Hadoop本身是开源软件,完全免费;其次,它可以部署在廉价的PC机上;“把计算推送给数据”的设计理念,节省了数据传输中的通信开销。显然,若使用传统的关系型数据库将所有数据存储起来成本高昂,这不利于大数据产业的发展。
高效性。Hadoop以简单直观的方式解决了大数据处理中的基本问题,即大数据储存和大数据分析。并且数据规模越大,相较于单机处理Hadoop的集群并行处理优势越明显。
基础性。对于技术优势的企业,可以根据基础的Hadoop结合应用场景进行二次开发,使其更适合实际工作环境。比如,Facebook从自身应用需要出发,构建了实时Hadoop系统。
Hadoop系统的局限性 [10-11]:
不适合迭代运算。MapReduce要求每个运算结果都输出到HDFS,每次初始化都要从HDFS读入数据。在迭代运算中,每次运算的中间结果都要写入磁盘,Hadoop在执行每一次功能相同的迭代任务时,都有反复的I/O操作,计算代价很大。而对于现在常见的图计算和数据挖掘等领域,迭代计算是必要的。
实时性差。Hadoop平台由于频繁的磁盘I/O操作,大大地增加了时间延迟,对于快速处理任务不能胜任。
易用性差。Hadoop只是一个基础框架,精细程度有所欠缺,如果想用它来实现具体的业务,还需要更进一步的开发。MapReduce特定的编程模型,增加了Hadoop的技术复杂性。
虽然Hadoop本身有一些缺点,但是由于其支撑技术(MapReduce等)成熟较早,并且实现了海量数据分布式的存储和批量处理,所以被广泛使用,已成为大数据处理平台的事实标准。为了提高Hadoop的性能,各种工具应运而生,已经发展成为包括Hive、Pig、HBase、Cassandra、YARN等在内的完整生态系统。HBase新型NoSQL数据库便于数据管理,Hive提供类似SQL的操作方式进行数据分析,Pig是用来处理大规模数据的高级脚本语言……这些功能模块在一定程度上弥补了Hadoop的不足,降低了用户使用难度。MapReduce的设计理念决定了Hadoop适用于对庞大数据集加以控制、数据密集型计算和离线分析的场景。
2.Spark
Spark的整个生态系统称为BDAS(伯克利数据分析栈),包括Tachyon、Spark Streaming、Spark Core、MLlib等。其核心框架Spark,是为了实现大数据的快速处理而出现的,可以用来构建低延迟的应用。Spark以RDD(弹性分布数据集)为基础,实现了基于内存的大数据计算。RDD是对数据的基本抽象,实现了对分布式内存的抽象使用。由于RDD能缓存到内存中,可以将每次运算的中间结果都存放到内存中,避免过多的磁盘I/O操作,大大降低了时延。Tachyon是分布式内存文件系统,类似于内存中的HDFS,基于它可以实现RDD或文件在计算机集群中可靠的共享。Spark没有自己的文件系统,通过支持Hadoop HDFS、HBase等進行数据的存储,Spark更专注于计算性能。可以总结出如下特点[11-13]:
高速性。Spark主要通过基于内存计算减少磁盘I/O开销,极大地缩小了时间延迟。这使得它擅长处理Hadoop无法应对的迭代运算,在进行图计算等工作时表现更好。并且高速数据处理能力使得Spark更能满足大数据分析中对实时分析的要求。
灵活性。较之仅支持map函数和reduce函数的Hadoop,Spark支持map、reduce、filter、join、count等近80多种操作类型。Spark的交互模式使用户在进行操作时能及时获得反馈,这是Hadoop所没有的。Spark SQL提供用户直接用标准SQL语句在Spark上进行大数据查询,简单易学。尽管在Hadoop中,有了Hive,可以不用Java来写复杂的MapReduce程序,但是Hive在MapReduce上运行速度却达不到期望程度。
Spark以其近乎实时的性能和相对易用灵活而受到欢迎,它同Hadoop一样都是Apache旗下的开源集群系统,是目前发展最快的大数据处理平台之一。Spark主要适用于支持迭代计算,交互式查询,实时分析的场景。比如,淘宝使用Spark来实现基于用户的图计算应用[11]。由RDD特点决定,它不适合异步细粒度更新状态的应用[1],比如,增量的Web抓取和索引。RDD的特点之一是“不可变”,即只读不可写,如果要对RDD中的数据进行更新的话,就要遍历整个RDD并生成一个新RDD,这使得对细粒度内容的频繁更新代价很大。
Hadoop与Spark并不是互相排斥的关系,Hadoop解决了如何将大数据储存起来的问题,Spark在这基础之上考虑更快速、易用地实现大数据分析,这点从Spark仍采用HDFS作为文件系统就可以看出。它们适用于不同的场景,有时协同工作会达到更理想的效果,在Spark和Hadoop的许多发行版中,它们都已经互相支持实现。
3.Hadoop发行版
包括传统IT企业和新兴互联网企业在内的众多厂家,通过对开源平台Hadoop进行改进,纷纷推出了自己的商业发行版。用户能更容易地对大数据进行处理,并易于搭建、监管复杂集群系统。
(1)CDH
Cloudera推出的CDH,基于稳定版Apache Hadoop并应用最新的BUG修复系统和管理监控平台,在安全性、兼容性和稳定性方面有所增强。Cloudera公司业务开发负责人Ed Albanese表示[14]:在CDH上运行的应用已超过其它Hadoop产品上运行的应用。
(2)MapR
提供了完整的Hadoop组件体系,并且100%和Apache Hadoop API兼容。新增的Direct Access NFS技术支持文件随机读写,大大地扩展了MapR Hadoop的应用范围。还支持了Snapshot(快照)、Mirro(镜像)等企业应用功能。
(3)InfoSphere BigInsights[15]
是IBM推出的以Hadoop为基础的云端大数据分析平台,企业版在30分钟内可以启动运行。客户即使没有Hadoop技能,也可以捕捉和分析任意数据,使组织内任何人都获得了大数据处理的能力。
由于开源Hadoop存在的许多先天不足,直接使用尚达不到普及的程度。为了推进大数据的企业级应用,大数据平台产品旨在提供优越性能的同时,简化客户搭建、管理和监控复杂集群的过程,优化和扩展开源方案,降低使用难度以普及应用,使大数据作为企业的基础资源能有效被利用。
三、结语
介绍大数据的3v特点及在此特点下数据处理上与传统数据处理的不同,有助于认识传统处理方式在大数据环境下的局限性。通过分析常用的大数据处理平台,并分析Hadoop和Spark的核心技术,对其优缺点进行了归纳。Hadoop实现了对海量异构数据在人们可以接受的时间和成本内进行可靠地存储和处理,虽然它在处理速度和易用性方面存在缺陷,但由于它的基础性,企业可以根据自身应用特点进行改进,目前已被广泛应用。虽然Spark不适合异步细粒度更新状态的应用,但在处理性能和易用程度上较于Hadoop有显著优势,发展十分迅速。文章指出它们各自的适用场景,平台的选择应根据企业的应用需要。通过比较两者的优缺点,可以发现它们在功能上有较强的互补性,有时它们对资源的协同使用可以带来效益优化,目前Spark和很多Hadoop发行版都已经支持互相实现。最后介绍了几种目前常用的商业Hadoop发行版,相较于开源框架它们都进行了不同程度的优化,并且更易于企业级实现。综上,以期对大数据平台或产品的选择、利用和研发有所启发。
[参考文献]
[1]孟小峰.大数据管理:概念、技术与挑战[J].計算机研究与发展,2013,(01).
[2]张 引.大数据应用的现状与展望[J].计算机研究与发展,2013,(S2).
[3]IBM:积极推进“大数据”时代革新[J].硅谷,2011,(22).
[4]于 翔.HP Vertica 6.1快速连接H-
adoop[N].网络世界,2013-02-04.
[5]王 强.大数据分析平台建设与应用综述[J].集成技术,2016,(02).
[6]黄素萍.Hadoop平台在大数据处理中的应用研究[J].现代计算机,2013,(29).
[7]任 仁.Hadoop在大数据处理中的应用优势分析[J].电子技术与软件工程,2014,(15).
[8]戴中华.基于Hadoop平台的大数据分析与处理[J].通讯世界,2015,(06).
[9]张 臻.大数据处理平台分析[J].电信快报,2014,(06).
[10]张岩峰.云环境下大数据迭代计算研究[D].东北:东北大学,2012.
[11]何海林.大数据处理平台比较与分析[J].微型机与应用,2015,(11).
[12]李 曼.Spark生态系统走向成熟和应用[J].世界电信,2015,(07).
[13]范炜玮.大数据处理平台Spark及其生物医学应用[J].中国中医药图书情报杂志,2015,39(02).
[14]NetApp携Cloudera提供卓越的Hadoop解决方案[J].硅谷,2011,(22).
[15]许继楠.IBM大数据战略:将洞察付诸行动[N].中国计算机报,2011-11-07.
[责任编辑:彭 亮]