一、大数据概述


 1.1大数据的概念


大数据一共具有三个特征:(1)全样而非抽样;(2)效率而非精确;(3)相关而非因果。
(1)在过去由于缺乏获取全体样本的手段,人们发明了“随机调研数据”的方法。理论上,抽取样本越随机,就越能代表整体样本。但有了云计算和数据库以后,获取足够大的样本数据乃至全体数据,就变得非常容易了。
(2)第二点其实建立在第一点的基础上。过去使用抽样的方法,就需要在具体运算上非常精确。数据分析的目的并非仅仅就是数据分析,而是有其它用途,故而时效性也非常重要。
(3)第三个特征则非常有趣。相关性表明变量A和变量B有关,或者说A变量的变化和B变量的变化之间存在一定的正比(或反比)关系。但相关性并不一定是因果关系(A未必是B的因)。


1.2大数据的产生和应用


简单来说,数据产生经历了被动、主动和自动三个阶段。

(1)运营式系统阶段。数据库的出现使得数据管理的复杂度大大降低,实际中数据库大都为运营系统所采用,作为运营系统的数据管理子系统。比如超市的销售记录系统,银行的交易记录系统、医院病人的医疗记录等。人类社会数据量第一次大的飞跃正是建立在运营式系统开始广泛使用数据库开始。这种数据的产生方式是被动的。
(2)用户原创内容阶段。互联网的诞生促使人类社会数据量出现第二次大的飞跃。但是真正的数据爆发产生于Web 2.0 时代,这类数据近几年一直呈现爆炸性的增长,主要有两个方面的原因。首先是以博客、微博为代表的新型社交网络的出现和快速发展,使得用户产生数据的意愿更加强烈。其次就是以智能手机、平板电脑为代表的新型移动设备的出现,这些易携带、全天候接入网络的移动设备使得人们在网上发表自己意见的途径更为便捷。这个阶段数据的产生方式是主动的。
(3)感知式系统阶段。人类社会数据量第三次大的飞跃最终导致了大数据的产生,现在我们正处于这个阶段。这次飞跃的根本原因在于感知式系统的广泛使用。随着技术的发展,人们已经有能力制造极其微小的带有处理功能的传感器,并开始将这些设备广泛的布置于社会的各个角落,通过这些设备来对整个社会的运转进行监控。这些设备会源源不断的产生新数据,这种数据的产生方式是自动的。
1.3 大数据的作用
(1)变革价值的力量:国民幸福,一体现在民生上,二体现在生态上,通过大数据让有意义的事变得明晰,看我们在人与人关系上,做得是否比以前更有意义。
(2)变革经济的力量:大数据帮助我们从消费者这个源头识别意义,从而帮助生产者实现价值。这就是启动内需的原理。
(3)变革组织的力量:大数据将推动网络结构产生无组织的组织力量。最先反映这种结构特点的,是各种各样去中心化的WEB2.0应用,如RSS、维基、博客等。大数据之所以成为时代变革力量,在于它通过追随意义而获得智慧。1.4 大数据与大规模数据、海量数据的差别
1.4 大数据与大规模数据、海量数据的差别
(1)从对象角度看,大数据并非大量数据的堆积,要求这些大量的数据之间存在着或远或近、或直接或间接的关联性。数据间是否具有结构性和关联性,是 “大数据”与“大规模数据”的重要差别。
(2)从技术角度看,“大数据”与“大规模数据”、“海量数据”最大区别,就在于“大数据”这一概念中包含着对数据对象的处理行为。
(3)从应用角度看,大数据是对特定的大数据集合、集成应用大数据技术、获得有价值信息的行为。正由于与具体应用紧密联系,甚至是一对一的联系,才使得“应用”成为大数据不可或缺的内涵之一。
1.5 应用实例


1、谷歌流感趋势(Google Flu Trends,GFT)
2008年,谷歌的研究人员探索了其中的可能性,并宣称他们能够根据人们在搜索引擎上留下的信息对流感进 

 

hawk大数据基础知识总结(1)

来源: 李铮家的美妍的日志

 
<!-- 300*250 --> <iframe id="aswift_1" style="left: 0; position: absolute; top: 0; width: 300px; height: 250px;" name="aswift_1" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="300" height="250"></iframe>

行“即时预报”。这个工具工作的原理大致是这样的:设计人员置入了一些关键词(比如温度计、流感症状、肌肉疼痛、胸闷等),只要用户输入这些关键词,系统就会展开跟踪分析,创建地区流感图表和流感地图。谷歌多次把测试结果(蓝线)与美国疾病控制和预防中心的报告(黄线)做比对,从图可知,两者结论存在很大相关性。



谷歌的算法很容易受到与流感无关的周期性的词汇所影响,比如“高中篮球”等。每天都有上百万的与CDC的数据相关的搜索词汇,其中的许多搜索都会与流感趋势紧密相关,但其中也会存在着很多与流感相关的搜索实际上并不是又真正的流感病例引起或者与流感趋势有关。
2、大数据在医疗行业的应用Seton Healthcare是采用IBM最新沃森技术医疗保健内容分析预测的首个客户。该技术允许企业找到大量病人相关的临床医疗信息,通过大数据处理,更好地分析病人的信息。在加拿大多伦多的一家医院,针对早产婴儿,每秒钟有超过3000次的数据读取。通过这些数据分析,医院能够提前知道哪些早产儿出现问题并且有针对性地采取措施,避免早产婴儿夭折。
3、大数据在能源行业的应用
智能电网现在欧洲已经做到了终端,也就是所谓的智能电表。通过电网收集每隔五分钟或十分钟收集一次数据,收集来的这些数据可以用来预测客户的用电习惯等,从而推断出在未来2~3个月时间里,整个电网大概需要多少电。
维斯塔斯风力系统,依靠的是BigInsights软件和IBM超级计算机,然后对气象数据进行分析,找出安装风力涡轮机和整个风电场最佳的地点。利用大数据,以往需要数周的分析工作,现在仅需要不足1小时便可完成。
4、大数据在通信行业的应用
XO Communications通过使用IBM SPSS预测分析软件,减少了将近一半的客户流失率。XO现在可以预测客户的行为,发现行为趋势,并找出存在缺陷的环节,从而帮助公司及时采取措施,保留客户。此外,IBM新的Netezza网络分析加速器,将通过提供单个端到端网络、服务、客户分析视图的可扩展平台,帮助通信企业制定更科学、合理决策。
5、大数据在零售业的应用
零售企业也监控客户的店内走动情况以及与商品的互动。它们将这些数据与交易记录相结合来展开分析,从而在销售哪些商品、如何摆放货品以及何时调整售价上给出意见,此类方法已经帮助某领先零售企业减少了17%的存货,同时在保持市场份额的前提下,增加了高利润率自有品牌商品的比例。
1.6从数据库到大数据
从数据库(DB)到大数据(BD),看似只是一个简单的技术演进,但细细考究不难发现两者有着本质上的差别。
1、数据规模:“池塘”的处理对象通常以MB 为基本单位,而“大海”则常常以GB,甚至是TB、PB 为基本处理单位。
2、数据类型:过去的“池塘”中,数据的种类单一,往往仅仅有一种或少数几种,这些数据又以结构化数据为主。而在“大海”中,数据的种类繁多,数以千计,而这些数据又包含着结构化、半结构化以及非结构化的数据,并且半结构化和非结构化数据所占份额越来越大。
3、模式(Schema)和数据的关系:传统的数据库都是先有模式,然后才会产生数据。而大数据时代很多情况下难以预先确定模式,模式只有在数据出现之后才能确定,且模式随着数据量的增长处于不断的演变之中。
4、处理对象:传统数据库中数据仅作为处理对象。而在大数据时代,要将数据作为一种资源来辅助解决其他诸多领域的问题
5、处理工具:从“池塘”到“大海”,不仅仅是规模的变大。传统的数据库代表着数据工程(Data Engineering)的处理方式,大数据时代的数据已不仅仅只是工程处理的对象,需要采取新的数据思维来

应对。图灵奖获得者、著名数据库专家Jim Gray 博士观察并总结人类自古以来,在科学研究上,先后历经了实验、理论和计算三种范式。第四种范式的实质就是从以计算为中心,转变到以数据处理为中心,也就是我们所说的数据思维。计算社会科学(Computational SocialScience)基于特定社会需求,在特定的社会理论指导下,收集、整理和分析数据足迹(data print),以便进行社会解释、监控、预测与规划的过程和活动。
1.7 大数据与云计算
 
云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。
 
(1)从整体上看,大数据与云计算是相辅相成的:大数据着眼于“数据”,关注实际业务,提供数据采集分析挖掘,看重的是信息积淀,即数据存储能力。云计算着眼于“计算”,关注 IT 解决方案,提供 IT 基础架构,看重的是计算能力,即数据处理能力。没有大数据的信息积淀,则云计算的计算能力再强大,也难以找到用武之地;没有云计算的处理能力,则大数据的信息积淀再丰富,也终究只是镜花水月。
(2)从技术上看,大数据根植于云计算:云计算关键技术中的海量数据存储技术、海量数据管理技术、MapReduce 编程模型,都是大数据技术的基础。


(5)大数据的商业模式与架构----云计算及其分布式结构是重要途径:云计算将计算任务分布在大量计算机构成的资源池上,使用户能够按需获取计算力、存储空间和信息服务。云计算及其技术给了人们廉价获取巨量计算和存储的能力,云计算分布式架构能够很好地支持大数据存储和处理需求。这样的低成本硬件+低成本软件+低成本运维,更加经济和实用,使得大数据处理和利用成为可能。


1.8 大数据与物联网


物联网“Internet of things(IoT)”。顾名思义,物联网就是物物相连的互联网。这有两层意思:其一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;其二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信,也就是物物相息。


物联网架构可分为三层,包括感知层、网络层和应用层:
①感知层:由各种传感器构成,包括温湿度传感器、二维码标签、RFID标签和读写器、摄像头、GPS等感知终端。感知层是物联网识别物体、采集信息的来源;
②网络层:由各种网络,包括互联网、广电网、网络管理系统和云计算平台等组成,是整个物联网的中枢,负责传递和处理感知层获取的信息;
③应用层:是物联网和用户的接口,它与行业需求结合,实现物联网的智能应用。


物联网用途广泛,遍及智能交通、环境保护、政府工作、公共安全、平安家居、智能消防、工业监测、环境监测、路灯照明管控、景观照明管控、楼宇照明管控、广场照明管控、老人护理、个人健康、花卉栽培、水系监测、食品溯源、敌情侦查和情报搜集等多个领域。


1.9 对大数据的错误认识
 
根据IDC2011年市场研究报告,主要有三个典型的错误说法:
1) 关系型数据库不能扩展到非常大的数据量,因此不被认为是大数据的技术; 2) 无论工作负载有多大,也无论使用场景如何,Hadoop(或推而广之,任何Mapreduce的环境)都是大数据的最佳选择;
3) 基于数据模型的数据库管理系统的时代已经结束了,数据模型必须大数据的方式来建立。
正确的结论是:新型关系型数据库既可解决结构化和非结构化数据,也可满足大数据的数量和速度要求,相比较而言,Hadoop型解决方案是片面的,不能解决很多的关系型应用环境问题,不一定是最佳选择,大

数据管理和处理有更优的解决方案和技术路线。


1.10 大数据技术
大数据技术主要包括:
(1)数据采集:ETL工具负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。
(2)数据存取:关系数据库、NoSQL、SQL等。
(3)基础架构:云存储、分布式文件存储等。
(4)数据处理:自然语言处理(NLP,Natural Language Processing)是研究人与计算机交互的语言问题的一门学科。处理自然语言的关键是要让计算机"理解"自然语言,所以自然语言处理又叫做自然语言理解(NLU,NaturalLanguage Understanding),也称为计算语言学(Computational Linguistics。一方面它是语言信息处理的一个分支,另一方面它是人工智能(AI, Artificial Intelligence)的核心课题之一。
(5)统计分析:假设检验、显著性检验、差异分析、相关分析、T 检验、方差分析、卡方分析、偏相关分析、距离分析、回归分析、简单回归分析、多元回归分析、逐步回归、回归预测与残差分析、岭回归、logistic 回归分析、曲线估计、因子分析、聚类分析、主成分分析、因子分析、快速聚类法与聚类法、判别分析、对应分析、多元对应分析(最优尺度分析)、bootstrap 技术等等。
(6)数据挖掘:分类 (Classification)、估计(Estimation)、预测(Prediction)、相关性分组或关联规则(Affinity grouping or association rules)、聚类(Clustering)、描述和可视化、Description and Visualization)、复杂数据类型挖掘(Text, Web ,图形图像,视频,音频等)。
(7)模型预测:预测模型、机器学习、建模仿真。
(8)结果呈现:云计算、标签云、关系图等。
1.11 大数据存储和管理技术
(1)分布式缓存
分布式缓存使用CARP(Caching Array Routing Protocol)技术,可以产生一种高效率无接缝式的缓存,使用上让多台缓存服务器形同一台,并且不会造成数据重复存放的情况。分布式缓存提供的数据内存缓存可以分布于大量单独的物理机器中。
Memcached作为高速运行的分布式缓存服务器具有以下特点:
①协议简单:memcached的服务器客户端通信并不使用复杂的MXL等格式,而是使用简单的基于文本的协议。
②基于libevent的事件处理:libevent是个程序库,他将Linux 的epoll、BSD类操作系统的kqueue等时间处理功能封装成统一的接口。memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。
③内置内存存储方式:为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached,重启操作系统会导致全部数据消失。另外,内容容量达到指定的值之后memcached回自动删除不适用的缓存。
④Memcached不互通信的分布式:memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个memcached不会互相通信以共享信息。它的分布式主要是通过客户端实现的。
(2)分布式数据库
 要处理的数据量实在是太大、增长太快,而业务需求和竞争压力对数据处理的实时性、有效性又提出了更高要求,传统的常规技术手段根本无法应付。在这种情况下,技术人员纷纷研发和采用了一批新技术,主要包括分布式缓存、基于MPP的分布式数据库、分布式文件系统、各种NoSQL分布式存储方案等。
分布式数据库系统是数据库系统与计算机网络相结合的产物。分布式数据库系统产生于1970年代末期,在1980年代进入迅速成长阶段。由于数据库应用需求的拓展和计算机硬件环境的改变,计算机网络与数字通信技术的飞速发展,卫星通信、蜂窝通信、计算机局域网、广域网和Internet的迅速发展,使得分布式数据库系统应运而生,并成为计算机技术最活跃的研究领域之一。
(3)分布式文件系统
谈到分布式文件系统,不得不提的是Google的GFS。基于大量安装有Linux操作系统的普通PC构成的集群系统,整个集群系统由一台 Master(通常有几台备份)和若干台TrunkServer构成。
Hadoop具备低廉的硬件成本、开源的软件体系、较强的灵活性、允许用户自己修改代码等特点,同时能支持海量数据存储和计算任务。
(4)NoSQL
NoSQL数据库,指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
Google的 BigTable 和Amazon 的Dynamo使用的就是NoSQL型数据库。2010年下半年,Facebook选择HBase来做实时消息存储系统,替换原来开发的Cassandra系统。这使得很多人开始关注NoSQL型数据库HBase。Facebook选择HBase是基于短期小批量临时数据和长期增长的很少被访问到的数据这两个需求来考虑的。
 HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建大规模结构化存储集群。HBase是BigTable的开源实现,使用HDFS作为其文件存储系统。Google运行 MapReduce来处理BigTable中的海量数据,HBase同样利用MapReduce来处理HBase中的海量数据;BigTable利用Chubby作为协同服务,HBase则利用Zookeeper作为对应。
二、大数据关键技术与挑战
2.1 大数据处理的基本流程
整个大数据的处理流程可以定义为:在合适工具的辅助下,对广泛异构的数据源进行抽取和集成,结果按照一定的标准进行统一存储,并利用合适的数据分析技术对存储的数据进行分析,从中提取有益的知识并利用恰当的方式将结果展现给终端用户。具体来说,可以分为数据抽取与集成、数据分析以及数据解释。
(1)数据抽取与集成
要想处理大数据,首先必须对所需数据源的数据进行抽取和集成,从中提取出关系和实体,经过关联和聚合之后采用统一定义的结构来存储这些数据。在数据集成和提取时需要对数据进行清洗,保证数据质量及可信性。
(2)数据分析
传统的分析技术如数据挖掘、机器学习、统计分析等在大数据时代需要做出调整,因为这些技术在大数据时代面临着一些新的挑战,主要有:
①数据量大并不一定意味着数据价值的增加,相反这往往意味着数据噪音的增多。
②大数据时代的算法需要进行调整。云计算是进行大数据处理的有力工具,这就要求很多算法必须做出调整以适应云计算的框架,算法需要变得具有可扩展性。当数据量增长到一定规模以后,可以从小量数据中挖掘出有效信息的算法并不一定适用于大数据。
③数据结果好坏的衡量。大数据时代的数据量大、类型庞杂,进行分析的时候往往对整个数据的分布特点掌握得不太清楚,这会导致最后在设计衡量的方法以及指标的时候遇到诸多困难。(3)数据的解释
可以考虑从下面两个方面提升数据解释能力:
①引入可视化技术:常见的可视化技术有标签云(Tag Cloud)、历史流(history flow)、空间信息流(Spatial information flow)等。可以根据具体的应用需要选择合适的可视化技术。
②让用户能够在一定程度上了解和参与具体的分析过程:这个既可以采用人机交互技术,也可以采用数据起源技术。
2.2 数据处理模型
(1)大数据之快和处理模型
按照数据的三状态定义,水库里一平如镜(非活跃)的水是“静止数据(data at rest)”,水处理系统中上下翻动的水是“正使用数据(data inuse)”,汹涌而来的新水流就是“动态数据(data in motion)”。
左半部是批处理:以“静止数据”为出发点。Hadoop就是典型的批处理范式:HDFS存放已经沉淀下来的数据,MapReduce的作业调度系统把处理逻辑送到每个节点进行计算。这非常合理,因为搬动数据比发送代码更昂贵。
右半部则是流数据处理范式。流处理品类繁多,包括传统的消息队列(绝大多数的名字以MQ结尾)、事件流处理(Event Stream Processing)/复杂事件处理(Complex Event Processing或CEP)(如Tibco的BusinessEvents和IBM的InfoStreams)、分布式发布/订阅系统(如 Kafka)、专注于日志处理的(如Scribe和Flume)、通用流处理系统(如Storm和S4)等。两种范式常常组合使用,而且形成了一些定式:
对于流数据,多采用流范式。传统上认为流处理的方式更快,但流范式能处理的数据常常局限于最近的一个数据窗口,只能获得实时智能(real-time intelligence),不能实现全时智能(all-time intelligence)。
①流处理作为批处理的前端:比如大型强子对撞机,每秒PB级的数据先经过流处理范式进行过滤,只有那些科学家感兴趣的撞击数据保留下来进入存储系统,留待批处理范式处理。这样,欧洲核子研究中心每年的新增存储量可以减到25PB。
②流处理与批处理肩并肩:流处理负责动态数据和实时智能,批处理负责静止数据和历史智能,实时智能和历史智能合并成为全时智能。
(2)流处理
流处理的基本理念是数据的价值会随着时间的流逝而不断减少。因此尽可能快的对最新的数据做出分析并给出结果是所有流数据处理模式的共同目标。需要采用流数据处理的大数据应用场景主要有网页点击数的实时统计、传感器网络、金融中的高频交易等。
数据的实时处理是一个很有挑战性的工作,数据流本身具有持续达到、速度快且规模巨大等特点,因此通常不会对所有的数据进行永久化存储,而且数据环境处在不断的变化之中,系统很难准确掌握整个数据的全貌。
(3)批处理
MapReduce 模型首先将用户的原始数据源进行分块,然后分别交给不同的Map 任务区处理。Map 任务从输入中解析出Key/Value 对集合,然后对这些集合执行用户自行定义的Map 函数得到中间结果,并将该结果写入本地硬盘。Reduce 任务从硬盘上读取数据之后,会根据key 值进行排序,将具有相同key 值的组织在一起。最后用户自定义的Reduce 函数会作用于这些排好序的结果并输出最终结果。
2.3 大数据关键技术
需求推动创新,面对海量的Web 数据, Google 于2006 年首先提出了云计算的概念。。难能可贵的是Google 并未将这些技术完全封闭,而是以论文的形式逐步公开其实现。正是这些公开的论文,使得以GFS、MapReduce、Bigtable 为代表的一系列大数据处理技术被广泛了解并得到应用,同时还催生出以Hadoop 为代表的一系列云计算开源工具。云计算技术很多,但是通过Google 云计算技术的介绍能够快速、完整地把握云计算技术的核心和精髓。
(1)文件系统
GFS通过数据分块、追加更新(Append-Only)等方式实现了海量数据的高效存储。随着时间推移,GFS的架构逐渐开始无法适应需求。Google对GFS进行了重新的设计,该系统正式的名称为Colossus,其中,GFS的单点故障(指仅有一个主节点容易成为系统的瓶颈)、海量小文件的存储等问题在Colossus中均得到了解决。
(2)数据库系统
Bigtable是Google早期开发的数据库系统,它是一个多维稀疏排序表,由行和列组成,每个存储单元都有一个时间戳,形成三维结构。不同的时间对同一个数据单元的多个操作形成的数据的多个版本之间由时间戳来区分。除了Bigtable,Amazon的Dynamo和Yahoo的PNUTS也都是非常具有代表性的系统。
Dynamo综合使用了键/值存储、改进的分布式哈希表(DHT)、向量时钟(Vector Clock)等技术实现了一个完全的分布式、去中心化的高可用系统。PNUTS是一个分布式的数据库,在设计上使用弱一致性来达到高可用性的目标,主要的服务对象是相对较小的记录,比如在线的大量单个记录或者小范围记录集合的读和写访问。
Megastore将数据进行细粒度的分区,数据更新会在机房间进行同步复制。Spanner是已知的Google的最新的数据库系统,Google在OSDI2012上公开了Spanner的实现。Spanner是第一个可以实现全球规模扩展(Global Scale)并且支持外部一致的事务(support externally-consistent distributed transactions)的数据库。
(3)索引和查询技术
数据查询是数据库最重要的应用之一。而索引则是解决数据查询问题的有效方案。就Google自身而言,索引的构建是提供搜索服务的关键部分。Google最早的索引系统是利用MapReduce来更新的。根据更新频率进行层次划分,不同的层次对应不同的更新频率。每次需要批量更新索引,即使有些数据并未改变也需要处理掉。这种索引更新方式效率较低。
随后Google提出了Percolator,这是一种增量式的索引更新器,每次更新不需要替换所有的索引数据,效率大大提高。虽然不是所有的大数据应用都需要索引,但是这种增量计算的思想非常值得我们借鉴。Google 在使用的索引系统为Caffeine,构建在Spanner 之上,采用Percolator 更新索引。效率相较上一代索引系统而言有大幅度提高。
(4)数据分析技术
数据分析是Google最核心的业务,每一次简单的网络点击背后都需要进行复杂的分析过程,因此Google对其分析系统进行不断地升级改造之中。MapReduce是Google最早采用的计算模型,适用于批处理。图是真实社会中广泛存在的事物之间联系的一种有效表示手段,因此,对图的计算是一种常见的计算模式,而图计算会涉及到在相同数据上的不断更新以及大量的消息传递,如果采用MapReduce去实现,会产生大量不必要的序列化和反序列化开销。
在实时处理的模式选择中,主要有三种思路: 

①采用流处理模式。虽然流处理模式天然适合实时处理系统,但其适用领域相对有限。流处理模型的应用主要集中在实时统计系统、在线状态监控等。
 ②采用批处理模式。近几年来,利用批处理模型开发实时系统已经成为研究热点并取得了很多成果。从增量计算的角度出发,Google提出了增量处理系统Percolator,微软则提出了Nectar和DryadInc。三者均实现了大规模数据的增量计算。
③二者的融合。有不少研究人员尝试将流处理和批处理模式进行融合,主要思路是利用MapReduce模型实现流处理。


2.5 大数据时代面临的新挑战
(1)大数据集成
①广泛的异构性:主要体现在:1)数据类型从以结构化数据为主转向结构化、半结构化、非结构化三者的融合。2)数据产生方式的多样性带来的数据源变化。
②数据质量:一方面很难有单个系统能够容纳下从不同数据源集成的海量数据;另一方面如果在集成的过程中仅仅简单地将所有数据聚集在一起而不做任何数据清洗,会使得过多的无用数据干扰后续的数据分析过程。
(2)大数据分析
①数据处理的实时性(Timeliness)。大数据时代的数据实时处理面临着一些新的挑战,主要体现在数据处理模式的选择及改进。在实时处理的模式选择中,主要有三种思路:即流处理模式、批处理模式以及二者的融合。虽然已有的研究成果很多,但是仍未有一个通用的大数据实时处理框架。
②动态变化环境中索引的设计。大数据时代的数据模式随着数据量的不断变化可能会处于不断的变化之中,这就要求索引结构的设计简单、高效,能够在数据模式发生变化时很快的进行调整来适应。
③先验知识的缺乏。而在面对大数据分析时,一方面是半结构化和非结构化数据的存在,这些数据很难以类似结构化数据的方式构建出其内部的正式关系;另一方面很多数据以流的形式源源不断的到来,这些需要实时处理的数据很难有足够的时间去建立先验知识。
(3)大数据隐私问题
①隐性的数据暴露。互联网尤其是社交网络的出现,使得人们在不同的地点产生越来越多的数据足迹。这种数据具有累积性和关联性,单个地点的信息可能不会暴露用户的隐私,但如果有办法将某个人的很多行为从不同的独立地点聚集在一起时,他的隐私就很可能会暴露。
②数据公开与隐私保护的矛盾。数据公开是非常有必要的,政府可以从公开的数据中来了解整个国民经济社会的运行,以便更好地指导社会的运转。企业则可以从公开的数据中了解客户的行为,从而推出针对性的产品和服务,最大化其利益。但是数据信息量和隐私之间是有矛盾的,因此尚未出现非常好的解决办法。Dwork 在2006年提出了新的差分隐私(Differential Privacy)方法。差分隐私保护技术可能是解决大数据中隐私保护问题的一个方向,但是这项技术离实际应用还很远。
③数据的动态性:现有隐私保护技术主要基于静态数据集,而在现实中数据模式和数据内容时刻都在发生着变化。因此在这种更加复杂的环境下实现对动态数据的利用和隐私保护将更具挑战。
(4)大数据能耗问题。
在能源价格上涨、数据中心存储规模不断扩大的今天,高能耗已逐渐成为制约大数据快速发展的一个主要瓶颈。《纽约时报》和麦肯锡经过一年的联合调查,最终在《纽约时报》上发表文章《Power, Pollution and the Internet》。调查显示Google数据中心年耗电量约为300万瓦,而Facebook则在60万瓦左右。这些巨大的能耗中只有6%-12%的能量被用来响应用户的查询并进行计算。绝大部分的电能用以确保服务器处于闲置状态,以应对突如其来的网络流量高峰,这种类型的功耗最高可以占到数据中心所有能耗的80%。
①采用新型低功耗硬件。在空闲的状态下,传统的磁盘仍然具有很高的能耗,并且随着系统利用率的提高,能耗也在逐渐升高。新型非易失存储器件的出现,给大数据管理系统带来的新的希望。闪存、PCM等新型存储硬件具有低能耗的特性。虽然随着系统利用率的提高,闪存、PCM等的能耗也有所升高,但是其总体能耗仍远远低于传统磁盘。
②引入可再生的新能源。数据中心所使用的电能绝大部分都是从不可再生的能源中产生的。如果能够在大数据存储和处理中引入诸如太阳能、风能之类的可再生能源,将在很大程度上缓解能耗问题。这方面的工作很少,有研究人员探讨了如何利用太阳能构建一个绿色环保的数据库。
(5)大数据处理与硬件的协同
①硬件异构性带来的大数据处理难题。整个数据中心(集群)内部不同机器之间的性能会存在着明显的差别,因为不同时期购入的不同厂商的服务器在IOPS、CPU处理速度等性能方面会有很大的差异,这就导致了硬件环境的异构性(Heterogeneous)。一般的解决方案是考虑硬件异构的环境下将不同计算强度的任务智能的分配给计算能力不同的服务器,但是当这种异构环境的规模扩展到数以万计的集群时问题将变得极为复杂。
②新硬件给大数据处理带来的变革。所有的软件系统都是构建在传统的计算机体系结构之上,即CPU-内存-硬盘三级结构。CPU的发展一直遵循着摩尔定律,且其架构已经从单核转入多核。因此需要深入研究如何让软件更好的利用CPU多核心之间的并发机制。由于机械特性的限制,基于磁性介质的硬盘(Hard Disk Drive, HDD)的读写速率在过去几十年中提升不大,而且未来也不太可能出现革命性的提升。
(6)大数据管理易用性问题
①可视化原则(Visibility)。可视化技术是最佳的结果展示方式之一,通过清晰的图形图像展示直观地反映出最终结果。但是超大规模的可视化却面临着诸多挑战,主要有:原位分析、用户界面与交互设计、大数据可视化、数据库与存储、算法、数据移动、传输和网络架构、不确定性的量化、并行化、面向领域与开发的库、框架以及工具、社会、社区以及政府参与等。
②匹配原则(Mapping)。MapReduce模型虽然将复杂的大数据处理过程简化为Map和Reduce的过程,但是具体的Map和Reduce函数仍需要用户自己编写,这对于绝大部分没有编程经验的用户而言仍过于复杂。针对MapReduce技术缺乏类似SQL标准语言的弱点,研究人员开发出更高层的语言和系统。典型代表有Hadoop的HiveQL和Pig Latin、Google 的Sawzall、微软的SCOPE和DryadLINQ以及MRQL等。
③反馈原则(Feedback)。大数据时代很多工具其内部结构复杂,对于普通用户而言这些工具近似于黑盒(black box),调试过程复杂,缺少反馈性。如果未来能够在大数据的处理中大范围的引入人机交互技术,使得人们能够较完整的参与整个分析过程,会有效的提高用户的反馈感,在很大程度上提高易用性。
(7)性能测试基准
①系统复杂度高。大数据管理系统的类型非常多,很多公司针对自己的应用场景设计了相应的数据库产品。这些产品的功能模块各异,很难用一个统一的模型来对所有的大数据产品进行建模。
②用户案例的多样性。测试基准需要定义一系列具有代表性的用户行为,但是大数据的数据类型广泛,应用场景也不尽相同,很难从中提取出具有代表性的用户行为。
③数据规模庞大。在大数据时代,用户实际使用系统的数据规模往往大于测试系统的数据规模,因此能否用小规模数据的测试基准来代表实际产品的性能是目前面临的一个挑战。
④系统的快速演变。传统的关系数据库其系统架构一般比较稳定,但是大数据时代的系统为了适应数据规模的不断增长和性能要求的不断提升,必须不断的进行升级,这使得测试基准得到的测试结果很快就不能反映系统当前的实际性能。
⑤如果能够在现有的测试基准中选择合适的进行扩展的话,那么将极大减少构建新的大数据测试基准的工作量。可能的候选测试标准有SWIM(Statistical Workload Injector for MapReduce)、MRBS、Hadoop 自带的GridMix、TPC-DS、YCSB++等

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐