首页 > 范文大全 > 正文

面向Big Data的数据处理技术概述

开篇:润墨网以专业的文秘视角,为您筛选了一篇面向Big Data的数据处理技术概述范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:无所不在的移动设备、RFID、无线传感器每分每秒都在产生数据,数以亿计用户的互联网服务时时刻刻在产生巨量的交互。Big Data作为一个专有名词成为热点,归功于近年来互联网、云计算、移动和物联网的迅猛发展。针对现阶段业务需求和竞争压力对Big Data处理的实时性、有效性的高要求,本文在介绍面向big data处理方面的主要问题和难点的基础上,将现有的各种方法概括为两类并分别进行了阐述和分析,最后指出了该领域可能的发展方向。

关键词:Big Data 数据处理

中图分类号:P208 文献标识码:A 文章编号:1007-9416(2012)03-0000-00

1、引言

在如今或不久的将来,企业将完全淹没在浩瀚的海量数据中。PB字节的数据[1]以难以想象的速度通过不同的设备被收集起来,无所不在的移动设备、RFID、无线传感器每分每秒都在产生数据,数以亿计的用户通过互联网服务时刻在产生巨量的交互。哈佛商业评论把人们使用和互动的社会网络导致大量实时和档案资料的现象称之为“数据革命”。

在信息技术领域,Big Data[2]。包含那些由于迅速增长使得无法通过现有的数据库管理工具进行管理的大规模数据集。分析师可以通过对这些数据的分析来预测商业趋势,预防疾病,打击犯罪等[3],社会学家和研究人员用于预测失业、流感爆发、旅游消费和政治观点等,相比通过政府或民意调查报告,该方式快速、准确和廉价的特点使得对Big Data处理的需求不断增长。

从企业的角度来说,日益增长的信息已经很难存储在标准关系型数据库甚至数据仓库中,包括导致在实践中存在多年的难题。例如:怎样查询一个十亿行的表?怎样跨越数据中心所有服务器上的所有日志来运行一个查询?更为复杂的问题是,大量需要处理的数据是非结构化或者半结构化的。

在Big Data场景下,要处理的数据量增长速度快、容量大,而业务需求和竞争压力对数据处理的实时性、有效性又提出了更高要求,传统的常规技术手段根本难以应付。Gartner预测,到2015年,超过85%的财富前500大企业,无法善用Big Data分析后的数据以增加企业的竞争优势。带来的问题覆盖了从获取、存储[4]、搜索到共享、分析[5]以及可视化整个生命周期。Big Data所涉及的技术领域包括大规模并行处理(MPP)数据库,数据挖掘网格,分布式文件系统,分布式数据库,云计算平台,互联网以及可伸缩的存储系统等,吸引了学术界的研究兴趣,工业界也在不断的在产品中突破创新,应对Big Data带来的挑战。

本文通过对过去和当前面向Big Data的数据分析方面的研究进行了回顾,概括为分布式处理技术和基于GPU的大规模处理技术两方面,前者是在传统的基于CPU的计算机体系架构上,通过缓存、分布式处理技术等提升应对大规模数据处理的鲁棒性、伸缩性,提高数据分析算法的效率;后者则采用GPU并通过数据分析算法进行调整和优化,探索最优化的方法来提高数据运算和处理效率。

2、分布式处理技术

2.1以Greenplum为代表的分布式数据库

Greenplum[6]数据引擎软件专为新一代数据仓库所需的大规模数据和复杂查询功能所设计,基于MPP(海量并行处理)和Shared-Nothing(完全无共享)架构,基于开源软件和x86商用硬件设计(性价比更高)。支付宝公司在国内最早使用Greenplum数据库,将数据仓库从原来的Oracle RAC平台迁移到Greenplum集群。Greenplum强大的计算能力用来支持支付宝日益发展的业务需求。

2.2以GFS为代表的分布式文件系统

Google GFS[7]是分布式文件系统的典型代表。基于大量安装有Linux操作系统的普通PC构成的集群系统,整个集群系统由一台Master(通常有几台备份)和若干台TrunkServer构成。GFS中文件备份成固定大小的Trunk分别存储在不同的TrunkServer上,每个Trunk维护多份拷贝,也存储在不同的TrunkServer上。Master负责维护GFS中的 Metadata,客户端先从Master上得到文件的Metadata,根据要读取的数据在文件中的位置与相应的TrunkServer通信,获取文件数据。

在Google的后,诞生了Hadoop[8]。截至今日,Hadoop被很多中国最大互联网公司所追捧,百度的搜索日志分析,腾讯、淘宝和支付宝的数据仓库都可以看到Hadoop的身影。Hadoop具备低廉的硬件成本、开源的软件体系、较强的灵活性、允许用户自己修改代码等特点,同时能支持海量数据存储和计算任务。

2.省略开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。Memcached是分布式的,也就是说它不是本地的。它基于网络连接方式完成服务,本身它是一个独立于应用的程序或守护进程(Daemon方式)。

Memcached在很多时候都是作为数据库前端cache使用的。因为它比数据库少了很多SQL解析、磁盘操作等开销,而且它是使用内存来管理数据的,所以它可以提供比直接读取数据库更好的性能,在大型系统中,访问同样的数据是很频繁的,Memcached可以大大降低数据库压力,使系统执行效率提升。另外,Memcached也经常作为服务器之间数据共享的存储媒介,例如在SSO系统中保存系统单点登陆状态的数据就可以保存在Memcached中,被多个应用共享。

2.4 NoSQL

随着数据量增长,越来越多的人关注NoSQL,特别是2010年下半年,Facebook选择HBase来做实时消息存储系统,替换原来开发的Cassandra系统。这使得很多人开始关注HBase。Facebook选择HBase是基于短期小批量临时数据和长期增长的很少被访问到的数据这两个需求来考虑的。

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建大规模结构化存储集群。HBase是BigTable的开源实现,使用HDFS作为其文件存储系统。Google运行MapReduce来处理BigTable中的海量数据,HBase同样利用MapReduce来处理HBase中的海量数据;BigTable利用Chubby作为协同服务,HBase则利用Zookeeper作为对应。

3、基于GPU 的大规模数据处理技术

GPU (Graphics Prossessing Unit)在提升数据挖掘算法效率上的显著表现正在改变大规模数据挖掘的格局。例如,GPU加速版本的K均值聚类算法相比于流行的MimeBench程序,在单核的CPU上运行,前者比后者要快200至400倍;在一个高度优化的8核CPU的工作站上,前者比后者快6至12倍。

GPU加速的性能结果也支持大规模数据集。在一个10亿的二维数据点、1000个聚类的2009年的数据集上的实验[10]结果显示,GPU加速版本的K均值算法共花费26分钟(使用GTX 280 GPU,共240核心),而CPU版本的MimeBench程序则花费接近6天的时间(使用单核CPU的工作站) 随后在最新的Fermi GPUs ( 480 cores and 1 TFLOPS )平台上的测试页证实了加速的效果。

过去两年,发表了大量相关的研究成果,均证实了使用GPU带来的对数据处理性能的提升。下面列出了其他7个经证实的经GPU提升的数据挖掘算法:

隐马尔科夫模型 (HMM, Hidden Markov Models) 被用于许多数据挖掘应用,包括金融经济学,计算生物学,解决金融方面的时间序列建模的挑战(非平稳和非线性),网络入侵日志分析等。针对GPU设计的并行HMM 算法[11],GPU版本的性能高出单核CPU的工作达到800倍。

排序是许多数据挖掘算法的重要组成部分。Duane Merrill and Andrew Grinshaw (弗吉尼亚大学) 宣布了基数排序算法的快速实现,在GTX480 (NVidia Fermi GPU)的平均排序速度超过 1G keys/秒。

基于密度的聚类(Density-based Clustering)是聚类中的重要方法,能够较好的处理任意形状的簇的噪声和离群点。实验显示,GPU加速版本在30K规模的数据点上性能提升3.5倍,20亿数据集上提15倍,超过250K的数据点基本可以保证至少10的运算性能提升。

相似性连接(Similarity Join) 相似连接(similarity join)在数据清洗、生物信息、模式识别等应用领域中有着广泛应用。 研究人员 采用了一种称为Index-supported similarity join的特殊算法使用GPU在180M的数据集上的性能超出CPU版本的15.9倍。

贝叶斯混合模型(Bayesian Mixture Models) 在尤其是结构化多元混合的大数据集的分析中应用广泛。最近的研究表明在老的GPU (GeForce GTX285 with 240 cores) 较一个4核心CPU版本取得了120倍加速。

支持向量机(Support Vector Machines, SVM) 被用于分类和聚类分析方面拥有许多用户。训练SVM以及用于分类一直属于计算密集。较之CPU版本,GPU版本的SVM 算法在计算分类模型上发现在性能上提升43至104倍,在计算回归模型上提升112至212倍。

核函数机(Kernel Machines)算法基于核方法,在数据挖掘、现代机器学习和非参数统计方向扮演中重要的角色。这些算法的关键在于核函数矩阵的一系列线性操作,并作为训练和测试数据的参数。最近的研究包括把核函数机转化为在GPU上的并行核算法。在10000个采样点上的估计1000个点的密度;CPU版本花费16秒,GPU版本花费13毫秒,超过1230倍的提升;在8个维度的高斯过程回归进行预测的试验中,GPU版本花费2秒而CPU版花费数个小时来完成同样的预测。

4、结语

本文前面部分对面向Big Data的数据分析处理进行了回顾,对当前的相关研究进行了归纳。基于分布式处理技术和采用GPU确实能一定程度上提升数据的处理效率。但各种方法产生的结果均是在对应的数据集上进行的,一是某种方法的思想是否适用于其他领域、其他数据集,仍需要通过新的实验来验证;二是这些方法是否存在共性的部分或者这些方法是否能够通过融合取得更理想的结果;三是对基于GPU的方法都是在单个GPU上获取的,是否能够通过GPU集群能够获得更好的性能,即如何集成分布式处理和GPU硬件的优势,都是需要通过进一步的研究来获取答案。

另外,组成Big Data的内容大多包含了用户的信息,例如在线交易、交流,地理位置等等,而用户无法控制这些数据被谁使用,用于什么目的。数据分析与隐私保护问题需要较好的处理。

参考文献吗

[1]Petabytes of data. 2011.

[2]White, T., Hadoop: The Definitive Guide. 2009, O'Reilly Media.

[3]Cukier, K., Data, data everywhere. 2010.

[4]Kusnetzky, D., What is "Big Data?", ZDNet.

[5]Vance, A., Start-Up Goes After Big Data With Hadoop Helper. 2010.

[6]Corporation, E., Greenplum is driving the future of Big Data analytics.

[7]Ghemawat, S., et al., The Google file system. SIGOPS Oper. Syst. Rev 2003. 37: p. 29--43

[8]Foundation, T.A.S., Apache™ Hadoop™. 2011.

[9]Dormando, memcached - a distributed memory object caching system. 2009.

[10]Wu, R., B. Zhang and M. Hsu. Clustering billions of data points using GPUs. in UCHPC-MAW '09. 2009. New York, NY, USA: ACM.

[11]Liu, C., cuHMM : a CUDA Implementation of Hidden Markov Model Training and Classification, in The Chronicle of Higher Education. 2009: United States.