大数据技术研究综述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大数据技术研究综述
摘要:大数据是继云计算、物联网之后IT 产业又一次颠覆性的技术革命。文中介绍了大数据的概念、典型的4“V”特征以及大数据的关键技术,归纳总结了大数据处理的一般流程,针对其中的关键技术,如MapReduce、GFS、Hadoop以及NoSQL等,介绍了基本的情况。最后,本文对大数据时代做了总结与展望。
关键词:大数据;数据处理技术;云计算
当人们还在津津乐道云计算、物联网等主题时,一个崭新的概念——大数据横空出世。大数据是继云计算、物联网之后IT产业又一次颠覆性的技术革命,对国家治理模式、企业决策、组织和业务流程,以及个人生活方式等都将产生巨大的影响。大数据的挖掘和应用可创造出超万亿美元的价值,将是未来IT 领域最大的市场机遇之一,其作用堪称又一次工业革命[1]。
我们身处数据的海洋,几乎所有事物都与数据有关,环境、金融、医疗……我们每天都在产生数据,打电话、发短信、进地铁站安检、进办公楼刷卡、在QQ 上聊天、上淘宝网购物……大量数据实时地影响我们的工作、生活乃至社会发展。数据成为与自然资源、人力资源同样重要的战略资源,引起了科技界和企业界的高度重视。
1 大数据的概念
大数据本身就是一个很抽象的概念,提及大数据很多人也只能从数据量上去感知大数据的规模,如:百度每天大约要处理几十PB 的数据;Facebook 每天生成300 TB以上的日志数据;据著名咨询公司IDC 的统计,2011年全球被创建和复制的数据总量为1.8 ZB(1021) ,但仅仅是数据量并不能区分大数据与传统的海量数据的区别。在2008年《Science》杂志出版的专刊中,大数据被定义为“代表着人类认知过程的进步,数据集的规模是无法在可容忍的时间内用目前的技术、方法和理论去获取、管理、处理的数据”[2]。
大数据不是一种新技术,也不是一种新产品,而是一种新现象,是近来研究的一个技术热点。大数据具有以下4个特点,即4个“V”:
(1) 数据体量(V olumes) 巨大。大型数据集,从TB级别,跃升到PB级别。
(2) 数据类别(Variety) 繁多。数据来自多种数据源,数据种类和格式冲破了以前所限定的结构化数据范畴,囊括了半结构化和非结构化数据。
(3) 价值(Value) 密度低。以视频为例,连续不间断监控过程中,可能有用的数据仅仅一两秒钟。
(4) 处理速度(Velocity) 快。包含大量在线或实时数据分析处理的需求,1秒定律。最后这一点也是和传统的数据挖掘技术有着本质的不同。物联网、云计算、移动互联网、车联网、手机、平板电脑、PC以及遍布地球各个角落的各种各样的传感器,无一不是数据来源或者承载的方式。
大数据技术是指从各种各样类型的巨量数据中,快速获得有价值信息的技术。解决大数据问题的核心是大数据技术。目前所说的"大数据"不仅指数据本身的规模,也包括采集数据的工具、平台和数据分析系统。大数据研发目的是发展大数据技术并将其应用到相关领域,通过解决巨量数据处理问题促进其突破性发展。因此,大数据时代带来的挑战不仅体现在如何处理巨量数据从中获取有价值的信息,也体现在如何加强大数据技术研发,抢占时代发展的前沿。
2 大数据处理流程
从大数据的特征和产生领域来看,大数据的来源相当广泛,由此产生的数据类型和应用处理方法千差万别。但是总的来说,大数据的基本处理流程大都是一致的。整个处理流程可以概括为四步,分别是采集、导入和预处理、统计和分析,最后是数据挖掘。
2.1 数据采集
大数据的采集是指利用多个数据库来接收发自客户端(Web、App或者传感器形式等)的数据,并且用户可以通过这些数据库来进行简单的查询和处理工作。比如,电商会使用传统的关系型数据库MySQL和Oracle等来存储每一笔事务数据,除此之外,Redis和MongoDB 这样的NoSQL数据库也常用于数据的采集。
在大数据的采集过程中,其主要特点和挑战是并发数高,因为同时有可能会有成千上万的用户来进行访问和操作,比如火车票售票网站和淘宝,它们并发的访问量在峰值时达到上百万,所以需要在采集端部署大量数据库才能支撑。并且如何在这些数据库之间进行负载均衡和分片的确是需要深入的思考和设计。
2.2 数据导入/预处理
虽然采集端本身会有很多数据库,但是如果要对这些海量数据进行有效的分析,还是应该将这些来自前端的数据导入到一个集中的大型分布式数据库,或者分布式存储集群,并且可以在导入基础上做一些简单的清洗和预处理工作。也有一些用户会在导入时使用来自Twitter的Storm来对数据进行流式计算,来满足部分业务的实时计算需求。
导入与预处理过程的特点和挑战主要是导入的数据量大,每秒钟的导入量经常会达到百
兆,甚至千兆级别。
2.3 数据统计/分析
统计与分析主要利用分布式数据库,或者分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总等,以满足大多数常见的分析需求,在这方面,一些实时性需求会用到EMC的GreenPlum、Oracle的Exadata,以及基于MySQL的列式存储Infobright等,而一些批处理,或者基于半结构化数据的需求可以使用Hadoop。
统计与分析这部分的主要特点和挑战是分析涉及的数据量大,其对系统资源,特别是I/O会有极大的占用。
2.4 数据挖掘
与前面统计和分析过程不同的是,数据挖掘一般没有什么预先设定好的主题,主要是在现有数据上面进行基于各种算法的计算,从而起到预测(Predict)的效果,从而实现一些高级别数据分析的需求。比较典型算法有用于聚类的Kmeans、用于统计学习的SVM和用于分类的NaiveBayes,主要使用的工具有Hadoop的Mahout等。该过程的特点和挑战主要是用于挖掘的算法很复杂,并且计算涉及的数据量和计算量都很大,常用数据挖掘算法都以单线程为主。
整个大数据处理的普遍流程至少应该满足这四个方面的步骤,才能算得上是一个比较完整的大数据处理
3 大数据关键技术
在大数据处理流程中,最核心的部分就是对于数据信息的分析处理,所以其中所运用到的处理技术也就至关重要。提起大数据的处理技术,就不得不提起“云计算”,这是大数据处理的基础,也是大数据分析的支撑技术。分布式文件系统为整个大数据提供了底层的数据贮存支撑架构;为了方便数据管理,在分布式文件系统的基础上建立分布式数据库,提高数据访问速度;在一个开源的数据实现平台上利用各种大数据分析技术可以对不同种类、不同需求的数据进行分析整理得出有益信息,最终利用各种可视化技术形象地显示给数据用户,满足用户的各种需求。