本文先根据大数据的不同处理方式,介绍几种不同形式大数据处理平台以及他们各自对应的几个典型应用,并指出了具有代表性的处理系统。之后对建立于这些系统框架上的大数据分析技术应用作出场景分析,并对大数据行业发展存在的问题和机遇进行了详细的阐述。
【关键词】大数据 数据分析 Hadoop 机器学习
1 引言
大数据在近几年迅速成为最具有热点的一个话题,科技、企业界乃至于各国政府都对其十分关注,大数据带来的机遇和挑战已经成为了各界的焦点。
以宏观的角度来看,大数据是物理世界、信息世界和人类世界的纽带,物理世界通过网络将反应自身特性的数据反映到信息世界中,人类世界凭借界面的交互手段对自己的数据向信息世界进行输入和操作。大数据的特征可总结为5点,即体量大、速度快、模态多、难辨识和价值大密度低五大特性,数据量的庞大并不是目前大数据的主要难点,真正的挑战在于数据类型的多样性、不确定性以及对数据处理即时响应的要求。
出于应对处理数据困难的探索,开源界推出了Hadoop,Spark等应对不同应用场景的大数据处理系统,同时相应的分析技术如:深度学习、可视化、知识计算等,这些大数据系统已经逐渐得到广泛的应用。
2 大数据处理系统
2.1 批量式数据处理系统
批量式数据有三个主要的特性:
(1)数据量巨大,目前已经达到PB级。
(2)数据来源与具体应用系统,精度相对较高。
(3)数据的价值密度相应低下,如视频数据,在视频播放的过程中,有价值的数据可能只有仅仅几秒,而这也需要专用的算法对有价值的数据进行提取,同时提取数据的行为将会消耗一定的时间,所以存在诸多限制,常常会造成处理结果不甚理想。
综合以上三点特性,批量式数据的处理需要相对比较成熟的技术和作业手段。
批量式数据的应用:
(1)搜索引擎:互联网是大数据的重要来源,知名的搜索引擎如美国的Google,我国的百度等大型互联网搜索引擎,通过与广告相关数据的批量处理,来及时改变广告投放的策略,根据分析用户的喜好,更改广告的分布以提高用户的点击量。
(2)社交网络:目前的社交网络和各大社交app每天都将产生巨大的数据量,新浪微博、微信等用户众多的社交网络每时每刻都在产生大量的非结构化数据(视频、图片、文本),针对这些数据进行批量式处理,可以帮助分析方发现社交网络中人际之间的潜在关系和他们的共同网络,根据这一共同特性进行更新升级,可以进一步提升用户的使用体验。
(3)电子商务:在淘宝、京东、亚马逊等电商网站上,产生大量的商品浏览记录、购买记录和评论记录,批量处理这些数据,商铺可以针对用户的热度对商品进行重新排布,app可以根据每个用户的喜好为其进行个性化推送,生产公司可以用处理结果对每个不同地区的市场方针进行部署。
(4)网络安全:在金融服务和情报机构中,可以通过对批量数据的处理来检测客户交易等操作是否存在异常,由此对潜在的欺诈行为进行预防预警。
代表性的处理系统:
2003年Google发布了GFS(Google File System),2004年发布MapReduce编程模型,掀起了大数据开发的高潮,在学术界和产业界产生了强烈反馈。作为MapReduce及GFS的开源版本,Nutch项目Hadoop在2006年发布了HDFS和MapReduce,MapReduce成為大数据标准的数据处理模型。HDFS是分布式文件系统,负责数据存储,MapReduce是大数据编程模型,负责批量大数据运算。Hadoop已经形成了生态圈,其子项目有Hive,HBase,Pig等。如图1所示。
2.2 流式数据处理系统
流式数据还有以下几点共同特性:
(1)流式数据的每个单元都带有标志时间的标签和相关属性,所以处理流式数据通常是按照时间顺序来进行的。
(2)流式数据可以由无结构、半结构、结构化数据组成,故其处理流程复杂、数据纯度不高。
(3)流式数据具有活动性。
典型应用:
(1)金融银行业:金融银行行业的运营数据,具有短时效性,数据结构也混杂,对这些流式数据进行处理,可以帮助银行发现其内在特征,帮助银行做出实时决策。
(2)数据采集:随着物联网的兴起,NBIoT的广泛应用,终端设备产生海量实时数据。当前主要有传感器数据采集、日志采集、Web操作日志采集,使用流式系统获取实时数据信息,达到动态预警及通知功能。
2.3 代表性的处理系统
2.3.1 Storm系统
Storm诞生于BackType公司,随着BackType被Twitter收购,Storm转为开源并在GitHub上公布。在2014年9月正式成为Apache旗下的顶级项目。
Storm是实时的Hadoop,在实时数据处理领域扮演Hadoop之与批量数据处理领域的角色。Storm解决了Hadoop在处理实时数据面临的瓶颈,采用分而治之理念的Hadoop在处理实时性要求高的场景显得老态龙钟。如图2所示。
Storm采用Master/Slave体系结构,与Hadoop主从架构一样,Nimbus是整个集群的控制节点,负责指令的分发和系统的监控。Supervisor是从节点,负责具体任务执行。
2.3.2 Samza系统
Linkedin开源了消息队列Kafka,得到业界广泛应用,相当部分流式数据处理系统都使用KafKa作为分布式消息处理模块。Linkedin于2013年基于YARN和Kafka开发了一套流式处理框架—Samza。endprint
Kafka(数据层)、YARN(执行层)、Samza API(处理层)构成了Samza系统的整体架构。如图3所示。
Samza的主要特点是依赖YARN和Kafka。
3 对大数据领域的思考及总结
开源大数据解决方案日新月异,各有使用场景,总体来说总结出几种发展趋势:
(1)平台适应多样华,Hadoop成为大数据平台事实上的标准,适用于批处理数据分析应用场景。利用内存实现加速的Spark在实时性要求高的场景中有更好的适配性。在大数据平台家族中,出现了Spark,TEZ,Drill,Storm,Flume,Scribe等新技术,其并不是要取代Hadoop,而是要促进大数据生态环境的完整化发展。
(2)数据处理实时性:在物联网、大数据蓬勃发展的基础上,将海量数据(PB级别)处理时间缩短到几秒级别的实时计算需求越发强烈。
(3)专业化:专业化是提高效率的必经之道,业界多通过定制化的软硬一体解决方案实现低成本、高并发的解决方案。
参考文献
[1]周宝曜,刘伟,范承工.大数据战略·技术·实践[M].电子工业出版社,2013:127-130.
[2]Greenberg A,Hjalmtysson G,Maltz D A, et al.A clean slate 4D approach to network control and management[J]. ACMSIGCOMM Computer Communication Review,2005,35(05):41-54.
[3]Taigman Y,Yang M,Ranzato M,Wolf L.Deepface: Closing the gap to human-level performance in face verification.In:Proc.Ofthe IEEE CVPR,2014.
[4]Plaisant C,Carr D,Shneiderman B.Image-Browser taxonomy and guidelines for designers.IEEE Software,1995,12(02):21-32.
[5]Feblowitz J.Analytics in oil and gas:The big deal about big data. In:Proc.of the SPE Digital Energy Conf,2013.
[6]Hive.https://hive.apache.org/.
[7]Pig.https://pig.apache.org/.
[8]Hbase.https://hbase.apache.org/.
[9]MongoDB.http://www.mongodb.org.
作者簡介
李洁(1979-),男,河南省桐柏县人。大学本科学历。高级工程师,研究领域为通信网络、信息安全、云计算。
应昌成(1996-),男,上海市人。本科在读。研究领域为大数据分析、海洋技术。
作者单位
上海科技网络通信有限公司 上海市 200000
上海大数据试验场工程技术研究中心 上海市 200000endprint