龙源期刊网的大数据分析与应用作者:王博文来源:《数字技术与应用》2015年第04期摘要:对于IT行业来说,大数据的处理与分析是目前非常热门的专业技术,很多企业都希望利用大数据处理和应用来帮助自己获得成功。但就目前的现状来看,存储技术还存在一定的问题,为了让大数据能够得以更好的应用且具备更强的扩展性能,Hadoop的出现为企业的成功带来了可能,并开始了蓬勃的发展。本文主要分析了hadoop的工作原理及其特点,并论述了Hadoop与大数据分析与应用的关系。关键词:hadoop大数据应用中图分类号:Tp274文献标识码:A文章编号:1007-9416(2015)04-0226-01最近几年以来,大部分企业都开始认识到数据资产规模化能够给企业带来的潜在价值,而这些不断增长的数据资产主要分为非结构化与半结构化两种类型。怎样利用最低的成本和最快的效率来对这些海量数据进行处理与应用,成为摆在我们面前的一大难题。Google公司率先提出了MapReduce编程框架,而GFS文件系统与BigTable存储系统也开始成为了大数据处理技术中的领导者,而这三种技术也成为了大数据处理技术的事实标准,以极快的速度普及到各个互联网企业之中,逐渐变为了PB级海量大数据处理的领先技术。那么Hadoop到底是什么?为什么Hadoop可以成为当今热门的大数据应用的开发平台?1Hadoop框架工作原理分析Hadoop属于开源框架,它的本质是一种能够用于编写和运行分布式应用处理的大规模数据。Hadoop和其他的框架相比,自身具备便捷、可扩展性强、操作便利等特征,特别是Hadoop的便利性让它在编写与运行大型分布式程序的过程中独占优势。用户借助于Hadoop能够在很大程度上领略到分布式计算法则带来的优势。Hadoop利用分布式存储、迁移代码等技术,在进行大数据的处理过程中,可以非常好地解决耗时数据传输问题。更关键的一点是,数据冗余机制能够让Hadoop从单点失效中逐渐恢复[1]。Hadoop框架基本构成包括了分布式文件系统HDFS以及MapReduce。HDFS主要是利用Master/Slave架构,一个HDFS集群包含了NameNode节点与DataNode节点。NameNode属于中心服务器,其主要作用是对文件系统的名字空间进行管理,同时负责文件访问。在集群系统内部,通常来说在某个节点中运行一个DataNode,主要对此节点内的数据信息进行管理,同时处理客户端发送来的文件读写请求,还能够在NameNode的调度下对数据模块进行创建与复制。另外,Hadoop还能够完成MapReduce分布式计算,Mapreduce能够将总任务划分为若干子任务,而各个子任务能够在任意集群节点中进行处理。HDFS创建了若干数据副本,能够确龙源期刊网保每个子任务节点计算的准确性。因为选择分布式文件系统HDFS以及MapReduc模型,从而让Hadoop具备更高的容错率和数据读写吞吐率,可以对失败节点进行自动处理。2MapReduce编程模型MapReduce(映射-归并算法)模型是由Google公司提出的高阶并行函数的抽象模式,根据相关报道显示,Google集群中每小时有数百万个MapReduc处于执行状态。它依靠函数编程的思路,将海量数据集的一般操作抽象化为Map和Reduc两大集合操作,在很大程度上降低了分布式并行计算程序的难度。在这样的计算模型之内主要存在两个关键环节,即是映射Map与聚集Reduc。所以必须要求程序编写人员能够实现上述两个函数,Map函数和Reduc函数对一组输入键值实施计算,从而获得另外的输出键值对[2]。在Hadoop平台下,MapReduce应用程序由一个Mapper类,一个Reducer类和一个创建JobConf的驱动函数组成。有些时候还可以根据需要实现一个Combiner类,这个类实际上也是Reduce函数的一种实现[3]。(1)Input:应用程序自动提供Map以及Reduce函数,同时标明输入/输出具体位置以及其他操作必须的具体参数,这一过程会将目录下的大文件分成一些独立的数据块。(2)Map:该模型能够将用户作业输入当成是一组键值对Key/Value,MapReduce模型能够自动调用Map函数对其中一个键值对进行处理,从而形成新的键值对。(3)Shuffle与Sort:在Shuffle时期利用网络给所有Reduce提供全部Map输出时相匹配的键值对;而在Sort时期,把根据Key值对Reduce输入实施分组。一般来说,Shuffle与Sort是共同执行的。(4)Reduce:对各个Key,执行用户定义的Reduce函数,从而得到新的键值对。(5)Output:把Reduce的结果写到输出目录之内。3Hadoop的主要特性及其与大数据应用的关系简单地说,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。而这个平台能够作为当今大数据分析与应用的主流,离不开以下几个主要特性。(1)低成本:Hadoop的搭建可以通过普通的机器来组成服务集群。为了拥有强大的计算能力,整个计算集群的规模可能有数千个节点。但是,即便如此,其整个集群的成本也要远远小于可以提供相等计算能力的高性能计算机。因此,对于实力并不雄厚的互联网公司,搭建Hadoop集群是一个既节省成本又可以提高服务性能的选择。(2)高可靠性:Hadoop可以自动对数据的复制进行维护,同时在任务失败之后对计算任务进行Redeploy。由于Hadoop常常将硬件错误当作常态,同时利用块的冗余存储机制来确保数据的准确性。在大部分的情况之下,副本系数为3,HDFS存放策略是把一个副本存储于本地机架节点之内,而其他的副本存储于不同的节点。因此,当部分机器出现宕机的时候,整个系统仍然可以保持正常运行,文件的完整性能够在很大程度上得到保证。(3)高扩展性:Hadoop主要是在计算机集簇之间进行数据的分配以及计算,而计算机集簇能够非常容易的扩展到大量的节点之内。当计算服务载荷龙源期刊网过大时,可以直接通过增加集群节点数目来达到扩容目的,而当载荷并不大时,可以减少节点数目或是向其他目标提高计算服务[4]。由此可见,Hadoop软件身上表现出了明显的众包特征与草根特征。使用开源软件最多的要数互联网公司,特别是很多刚刚创建的公司。对于技术选型上,Lamp/Memcache/Hadoop等都是我们的首选。推特的Robe和Pointer等人研究开发的Kestrel队列软件,能够对企业内部业务逻辑的following与befollowed等问题进行更加高效率的处理。而我们知道Kestrel是由Ruby语言编写的开源项目逐渐发展而来的。Twitter必须在500ms之内把相关信息推送到接收者手中。我们可以想象,若存在上亿的用户同时发送信息,可见其难度。因此,国内大数据以及云计算的发展必须要从开源文化中寻求发展路径,从思想上认识到开源软件的重要性。4结语总之,Hadoop属于一种分布式数据处理技术,在系统自身性能以及可扩展性等方面都具有非常大的优势,比较适用于以读取为主的大数据批量处理、查询以及检索等任务。Hadoop还能够让自己成为交易事务处理之外的传统关系型数据库的补充,对于增强企业信息化系统的工作效率、减少系统成本可以发挥出非常重要的作用。正因为如此,Hadoop凭借着这些特性与优势,在如今互联网行业快速发展的大环境下,掀起了一场大数据的浪潮。参考文献[1]靳永超,吴怀谷.基于Storm和Hadoop的大数据处理架构的研究[J].现代计算机,2015(04):65.[2]王宏宇.Hadoop平台在云计算的应用[J].软软件,2011,32(04):37-50.[3]谢桂兰,罗省贤.基于HadoopMapReduce模型的应用研究[J].微型机与应用,2010(08):4-7.[4]林佳烨.云计算在电信行业数据分析领域的应用[J].移动通信,2011(08):83-86.