Hadoop在海量数据中的应用

时间:2024-02-21 点赞:45045 浏览:86775 作者原创标记本站原创

本文是一篇数据库论文范文,数据库相关大学毕业论文,关于Hadoop在海量数据中的应用相关毕业论文模板范文。适合数据库及数据及日志方面的的大学硕士和本科毕业论文以及数据库相关开题报告范文和职称论文写作参考文献资料下载。

摘 要电子商务及互联网的广泛应用,产生了高达GB甚至TB规模的海量日志文件,传统的日志分析技术已经无法满足海量数据分析的需要.基于Hadoop的分布式并行处理方式在海量数据分析中表现出优越的效率,本文实现一个基于Hadoop的海量数据分析系统,可以并行分析大日志文件.

关 键 词Hadoop,海量数据分析,MapReduce

中图分类号:TP311文献标识码:A文章编号:1671-7597(2014)21-0134-02

1Hadoop生态圈

对于电商企业而言,对大量用户产生的海量数据文件进行分析是必须面临的首要任务.对海量数据进行分析时,Hadoop分布式框架可以借助Hive完成工作:其中Hadoop集群适用于处理海量数据,而Hive是一个数据仓库工具,可以将类SQL语句转换为MapReduce程序.针对海量数据分析这一需求,Hadoop有两个主要的功能:存储和数据分析.Hadoop的存储组件HDFS能够实现分布式数据存储的功能,另外,Hadoop的数据分析组件MapReduce能够对海量数据进行高效运算.HDFS是分布式存储的,对硬件要求比传统的文件系统更低,相对其他文件系统而言,具有如下特征:在硬件故障处理方面,由于Hadoop集群一般由很多机器组成,即使某节点发生故障也可以马上找到替代,不会出现单点故障,MapReduce框架是Hadoop分布式集群的数据处理框架,其基本原则是使用集群来处理庞大的数据:每个任务只处理一小部分数据.数据处理作业会把海量数据作为输入,并将海量数据划分为若干小块,在经过并行的Map操作后,将中间结果先写入内存或本地磁盘,再发送给不同的Reduce,Reduce程序的作用是处理中间数据,并将最终结果写入到HDFS文件系统.

Hive可以将类SQL语句(HiveQL)转换为MapReduce程序,和传统的数据库相比,Hive有如下不同[2]:1)Hive不支持数据更新.传统的数据库可以直接更新数据,而由于HDFS中的数据只写一次,所以Hive并不支持HDFS中的数据更新操作,若要改变一个数据,需要先删除相关的数据或分区表,然后再重新插入数据.2)Hive不支持数据索引.传统的数据库支持数据索引,而Hive并不支持数据索引,又由于Hive承载的是HDFS分布式文件系统,涉及到海量数据,所以在数据查询上的效率并不高.为了方便数据的存储,Hive引入了分区表的概念,如果涉及到的数据操作只与某个分区表相关,就会大大节省数据操作的时间,提高效率.


2日志数据预处理模型

为了对日志文件进行上述分析,需要首先对Web服务器产生的日志文件进行预处理,以尽可能简化日志、去掉对电子商务网站无用的数据,同时统一日志文件的格式.HDFS文件系统对日志文件进行预处理的流程如下:Map程序将处理产生的中间key/value对推送到本地我就系统和HDFS文件系统,然后Reduce程序从这两个文件系统中拉数据.日志数据预处理的常用模型如图1所示.

预处理的首要步骤是数据清洗,其目的是把日志中和数据分析无关的数据处理掉.数据清洗要处理的内容主要包括[3]:1)数据格式清洗.Hadoop数据分析的对象主要是文本数据,其他诸如音频、图片以及视频等数据对普通的日志数据分析意义不大,所以可以清洗掉后缀名包含.jpg、.gif等文件.2)状态清洗.客户请求并不是每次都会成功的,在进行数据分析前,也可以将请求状态不成功的那些数据清洗掉.3)请求类型清洗.用户的请求类型包括GET、POST、以及PUT等,但可以真正反映用户行为的只有GET类型的请求,所以可以清洗掉其他两种类型的数据.

图1日志处理模型

数据清洗完成后,可以进行用户识别处理(useridentification),用户识别指的是借助识别算法识别出日志数据涉及到的访问用户,以进一步确定日志数据中的用户和前台web页面的关系.用户识别主要是通过诸如IP地址判断、请求源判断以及链接关联性判断等来实现.会话识别的作用是识别经过用户识别处理后的用户行为,判断用户从初次进入web站点到离开站点的操作.路径识别(pathidentification)是web服务器日志数据处理的最后一步,目的是在完整路径基础上进行会话拆分.

3基于Hadop的数据分析系统及其应用

经过预处理后的日志文件,接下来要按照维度进行粒度划分,以生存最细分粒度的数据.日志文件的数量本来就十分庞大,再进行粒度划分后,细粒度的日志数量更加海量化,合适的选择划分工具将事半功倍,本文采用ApachePig实现这一过程.Pig包含类似高级语言的数据分析程序,因此可以用于进行海量数据分析.在将日志文件划分为最细分粒度的数据后,接下来就可以对每一个类别的最细分数据建立Hive表,然后使用ApacheHive汇总需要的细分粒度数据.每一个步骤产生的Hive表都可以被后面的处理过程使用,系统受到中间步骤产生的Hive表时,会调用Hive的相关接口,令其接收并处理Hive表中的内容.

Apache服务器会记录web访问生成的日志信息,并且会根据最终日志文件大小和每个日志文件的大小来决定日志文件的个数.将日志文件控制在合理大小范围内的目的是,一旦出现日志推送失败的情况,就可以在相对安全的时间内恢复,不影响后续的任务.一般而言,日志文件会产生在不同的机器上,为方便处理日志信息要将其推送到一个统一的平台――HDFS文件系统上,假设本地系统上当前日志文件是XXX.txt,则可以使用HDFS相关的shell命令实现日志文件的推送[4]:hadoopfsputXXX.txt/hdfs

web服务器上的apache日志文件格式一般如下:

192.168.169.50--[17/Feb/2012:10:36:26+0800]“GET/HTTP/1.1”4035043“-””Mozilla/5.0(WindowsNT5.1,rv:6.0)Gecko/20100101Firefox/6.0”

Apache日志中第一项是目标服务器的IP地址,第二项和第三项用“-”代替,第四项是请求的时间,第5项包括请求类型(此处是GET类型),接下来是请求的结果状态(此处为403),对日志文件的处理都涉及到上述内容.

在利用MapReduce程序对海量日志文件进行处理时,首先需要将日志文件导入到HDFS文件系统中,Mapper程序会自动将输入文件分割为若干小块,接下来Map函数会对输入中的每一行数据进行分析,提取预先设定的关键字并组织<,关键字,1>,为中间键值对,Reduce函数累加计算中间键值对,并输出为<,关键字,N>,格式的键值对,最终得到关键字在日志中的总次数.用于处理日志文件的Mapper和Reducer函数代码如下所示:

Mapper程序:

#!/usr/bin/envpython

importsys

forlineinsys.stdin:

words等于line.strip().split()

forwordinwords:

print“%s\t1”%(word.lower())

Reduce程序:

#!/usr/bin/envpython

importsys

(last_key,last_count)等于(None,0)

forlineinsys.stdin:

(key,count)等于line.strip().split(“\t”)

iflast_keyandlast_key!等于key:

print“%s\t%d”%(last_key,last_count)

(last_key,last_count)等于(key,int(count))

else:

last_key等于key

last_count+等于int(count)

iflast_key:

print“%s\t%d”%(last_key,last_count)

4结论

本文首先介绍了广泛用于海量数据分析的Hadoop生态圈,接下来说明了日志文件预处理的模型,并以此为基础实现了基于Hadoop的海量数据分析系统,并给出简单的Map程序和Reduce程序,最后将本文实现的hadoop海量数据分析系统应用于设计的海量日志分析,进行大日志文件的terasort操作.实验结果表明,对海量日志文件进行数据分析时,本文设计的数据分析系统对海量数据的处理性能并不比商业数据分析工具差,另外,其开源特性能够有效降低采购成本,不论是海量数据分析的效率,还是数据查询的速度,都能够为数据的分析和处理提供有力的平台支撑.

相关论文

海量数据处理技巧

该文是论文格式专业数据库论文范文,主要论述了数据库类学年毕业论文,与海量数据处理技巧相关论文范文例文,适合数据库及数据及索引方面的。

海量数据的相似重复记录检测算法

本文是一篇属性论文范文,属性方面有关在职毕业论文开题报告,关于海量数据的相似重复记录检测算法相关开题报告范文。适合属性及数理统计及计。

基于Hadoop的海量医学图像检索系统

本文是一篇图像论文范文,关于图像类自考毕业论文开题报告,关于基于Hadoop的海量医学图像检索系统相关学年毕业论文范文。适合图像及医学及计。

基于Hadoop的数据共享模型

这篇数据库论文范文属于论文格式免费优秀学术论文范文,数据库类有关毕业论文格式范文,与基于Hadoop的数据共享模型相关小论文格式。适合数据。

Hadoop降低数据门槛

本文是一篇数据论文范文,关于数据相关学士学位论文,关于Hadoop降低数据门槛相关硕士毕业论文范文。适合数据及营销策略及电子商务网站方面的。

有关财会信息资源元数据标准的

本文是一篇数据论文范文,数据有关专升本毕业论文开题报告,关于有关财会信息资源元数据标准的相关毕业论文开题报告范文。适合数据及数据库及。

关于财会数据准确性的

本文是一篇财务管理论文范文,财务管理方面有关本科论文开题报告,关于关于财会数据准确性的相关硕士论文范文。适合财务管理及会计核算及企业。

大数据时代的汽车营销模式变革

本文是一篇汽车营销论文范文,汽车营销方面有关毕业论文提纲,关于大数据时代的汽车营销模式变革相关硕士论文范文。适合汽车营销及互联网及数。