张焰等
【摘要】 随着互联网、移动互联网和物联网的发展,我们已经迎来了数据大爆炸的时代,数据的快速增长带来了数据存储、处理、分析的巨大压力,而大数据技术(Big data)的引入,不但满足了系统功能和性能的要求,带来良好的可扩展性,降低了IT部署的成本,还拓展了数据智能分析的应用领域。同时,大数据分析与云计算的发展密切相关,云计算是大数据处理的基础,而大数据技术是云计算的延伸,云计算的分布式存储和计算架构为大数据的快速处理和智能分析提供了一种合适的解决方案。本文将探讨建立在云计算基础上的大数据处理技术,包括分布式计算框架、分布式文件系统、大数据管理技术、实时流数据处理、机器学习以及可视化技术等。
【关键词】 云计算 大数据 MapReduce Hadoop一、大数据
1.1什么是大数据
大数据概念可以从四个维度去解,即三个V和一个C。三个V分别指的是数据量大(Volume)、数据种类多(Variety)和数据增长速度快(Velocity),最后一个C指的是处理、升级或利用大数据的分析手段比处理结构化数据要复杂的多(Complexity)。大数据分析常和云计算联系到一起,因为实时的大型数据集分析需要像Map-Reduce一样的并行计算框架将复杂的计算任务分配到“云”中成百上千的节点。
1.2大数据与云计算
大数据本身就是一个问题集,云计算技术是目前解决大数据问题集最重要最有效的手段。云计算提供了基础的架构平台,大数据应用在这个平台上运行。目前公认为分析大数据集最有效手段的分布式处理技术,也是云计算思想的一种具体体现。
云计算是分布式处理、并行处理和网格计算的发展,或者说是这些计算机科学概念的商业实现。云计算将网络上分布的计算、存储、服务构件、网络软件等资源集中起来,基于资源虚拟化的方式,为用户提供方便快捷的服务, 实现了资源和计算的分布式共享和并行处理,能够很好地应对当前互联网数据量高速增长的势头。
1.3大数据与Hadoop
Hadoop是一个Apache的开源项目,主要面向存储和处理成百上千TB直至PB级别的结构化、半结构化或非结构化的大数据。Hadoop提供的Map-Reduce能将大数据问题分解成多个子问题,并将它们分配到成百上千个处理节点之上,再将结果汇集到一个小数据集当中,从而更容易分析得出最后的结果。
Hadoop项目包括三部分,分别是Hadoop Distributed File System(HDFS)、Map Reduce编程模型,以及Hadoop Common。Hadoop具备低廉的硬件成本、开源的软件体系、较强的灵活性、允许用户自己修改代码等特点,同时能支持海量数据的存储和计算任务。这些特点让Hadoop被公认为是新一代的大数据处理平台。 Hadoop同样具备出色的大数据集处理能力,在获取、存储、管理和分析数据方面远远超越传统的数据库软件工具。Hadoop经常在构建大数据解决方案时被用作基础构架软件。
二、大数据技术综述
大数据处理不仅仅是Hadoop,许多特定的数据应用场景是需要实时分析和互动反馈的,这时候就需要利用包括内存检索、流处理和实时计算等其他技术。而云计算的分布式存储和计算架构开启了大数据技术研究的大门,打造健全的大数据生态环境,所有这些技术结合在一起,才是一个完整的大数据处理系统。
2.1分布式计算框架
MapReduce是Google开发的一种简化的分布式编程模型和高效的任务调度模型,用于大规模数据集(大于1TB)的并行运算,使云计算环境下的编程变得十分简单。
MapReduce将数据处理任务抽象为一系列的Map(映射)和Reduce(化简)操作对。Map主要完成数据的分解操作,Reduce主要完成数据的聚集操作.输入输出数据均以〈key,value〉格式存储.用户在使用该编程模型时,只需按照自己熟悉的语言实现Map函数和Reduce函数即可,MapReduce算法框架会自动对任务进行划分以做到并行执行。
Pregel是Google 提出的迭代处理计算框架,它具有高效、可扩展和容错的特性,并隐藏了分布式相关的细节,展现给人们的仅仅是一个表现力很强、很容易编程的大型图算法处理的计算框架。Pregel的主要应用场景是大型的图计算,例如交通线路、疾病爆发路径、WEB 搜索等相关领域。
2.2分布式文件系统
为保证高可用、高可靠和经济性,基于云计算的大数据处理系统采用分布式存储的方式来保存数据,用冗余存储的方式保证数据的可靠性。目前广泛使用的分布式文件系统是Google的GFS和Hadoop团队开发的GFS的开源实现HDFS。
GFS即Google文件系统,是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。GFS的设计思想不同于传统的文件系统,是针对大规模数据处理和Google应用特性而设计的,运行成本低廉,并提供容错功能。
HDFS即Hadoop分布式文件系统,受到GFS很大启发,具有高容错性,并且可以被部署在低价的硬件设备之上。HDFS很适合那些有大数据集的应用,并且提供了数据读写的高吞吐率。HDFS是一个master/slave的结构,在master上只运行一个Namenode,而在每一个slave上运行一个Datanode。HDFS支持传统的层次文件组织结构,对文件系统的操作(如建立、删除文件和文件夹)都是通过Namenode来控制,Datanode用来存放数据块。
2.3大数据管理技术
互联网数据已超出关系型数据库的管理范畴,电子邮件、超文本、博客、标签(Tag)以及图片、音视频等各种非结构化数据逐渐成为大数据的重要组成部分,而面向结构化数据存储的关系型数据库已经不能满足数据快速访问、大规模数据分析的需求,随之而来,一系列新型的大数据管理技术和工具应运而生。
2.3.1 非关系型数据库
NoSQL,也有人理解为Not Only SQL,它是一类非关系型数据库的统称。其特点是:没有固定的数据表模式、可以分布式和水平扩展。NoSQL并不是单纯的反对关系型数据库,而是针对其缺点的一种补充和扩展。典型的NoSQL数据存储模型有文档存储、键-值存储、图存储、对象数据、列存储等。而比较流行的,不得不提到Google的Bigtable,它把所有数据都作为对象来处理,形成一个巨大的表格,用来分布存储大规模结构化数据,数据量可达PB级。而HBase是Hadoop团队基于Bigtable的开源实现,使用HDFS作为其文件存储系统。同时,Cassandra(K/V型数据库)、MongoDB(文档数据库)和Redis等一系列优秀的非关系型数据库产品如雨后春笋般问世。
2.3.2 数据查询工具
Hive是Facebook提出的基于Hadoop的大型数据仓库,其目标是简化Hadoop上的数据聚集、即席查询及大数据集的分析等操作,以减轻程序员的负担.它借鉴关系数据库的模式管理、SQL接口等技术,把结构化的数据文件映射为数据库表,提供类似于SQL的描述性语言HiveQL供程序员使用,可自动将HiveQL语句解析成一优化的MapReduce任务执行序列.此外,它也支持用户自定义的MapReduce函数。
PigLatin是Yahoo!提出的类似于Hive的大数据集分析平台.两者的区别主要在于语言接口.Hive提供了类似SQL的接口,PigLatin提供的是一种基于操作符的数据流式的接口.可以说Pig利用操作符来对Hadoop进行封装,Hive利用SQL进行封装。
Google Dremel是个可扩展的、交互式的即时查询系统,用于完成大规模查询结构化数据集(如日志和事件文件)。它支持类SQL语法,区别在于它只能查询,不支持修改或者创建功能,也没有表索引。数据被列式存储,这样有助于提升查询的速度。Google将Dremel作为MapReduce的一种补充,被用于分析MapReduce的结果或者是作为大规模计算的测试。
2.4实时流处理技术
伴随着互联网业务发展的步调,以及业务流程的复杂化,企业的注意力越来越集中在“数据流”而非“数据集”上面,他们需要的是能够处理随时发生的数据流的架构,现有的分布式计算架构并不适合数据流处理。流计算强调的是数据流的形式和实时性。MapReduce系统主要解决的是对静态数据的批量处理,当MapReduce任务启动时,一般数据已经到位了(比如保存到了分布式文件系统上),而流式计算系统在启动时,一般数据并没有完全到位,而是经由外部数据源源不断地流入,重视的是对数据处理的低延迟,希望进入的数据越快处理越好。数据越快被处理,结果就越有价值,这也是实时处理的价值所在。
流计算的数据本身就是数据流,不需要数据准备的时间,有数据流入就开始计算,解决了数据准备和延迟的两个问题。现有的解决方案中,Twitter的Storm和雅虎的S4框架更适合数据流计算的场景。Storm是开源的分布式实时计算系统,可以可靠的处理流式数据并进行实时计算,单机性能可达到百万记录每秒,开发语言为Clojure和Java,并具备容错特性。S4是面向流式数据和实时处理的,所以针对实时性较高的业务,可以很好地对数据做出高效的分析处理,而且系统一旦上线,很少需要人工干预,源源不断的数据流会被自动路由并分析。对于海量数据,它和MapReduce都可以应对,但它能比后者更快地处理数据。
三、思考与展望
以云计算为基础的信息存储、分享和挖掘手段为知识生产提供了工具,通过对大数据分析、预测会使得决策更为精准,这对媒体融合具有重要意义。
新闻媒体的数据库中拥有海量信息存储,这些多媒体数据包括文字,图片,视频和音频等多种格式,符合大数据处理的基本特征,利用大数据技术对这些资源进行存储,计算和分析,了解用户行为,挖掘数据本质和关联,为领导提供决策支持,为终端用户提供更好的服务和新闻定制,增强新闻信息产品的质量和影响力。
如今,在开源社区,围绕Google MapReduce框架,已经成长出了一批优秀的开源项目。这些项目在技术和实现上相互支持和依托,逐渐形成了一个特有的“大数据”生态系统。系统为我们实现优质廉价的大数据分析和管理提供了坚实的技术基础。
新闻媒体可以顺应大数据的技术趋势,加强技术调研,早日选型,搭建大数据处理平台,利用云计算项目资源,将海量数据统筹管理,通过分析和挖掘,实现新闻产品的创新和跨越式发展,以现代化的传播手段向世界展示中国。