Hadoop在海量数据分析中的应用.docVIP

  • 9
  • 0
  • 约4.15千字
  • 约 7页
  • 2016-09-10 发布于北京
  • 举报
Hadoop在海量数据分析中的应用.doc

Hadoop在海量数据分析中的应用   摘 要 电子商务及互联网的广泛应用,产生了高达GB甚至TB规模的海量日志文件,传统的日志分析技术已经无法满足海量数据分析的需要。基于Hadoop的分布式并行处理方式在海量数据分析中表现出优越的效率,本文实现一个基于Hadoop的海量数据分析系统,可以并行分析大日志文件。   关键词 Hadoop;海量数据分析;MapReduce   中图分类号:TP311 文献标识码:A 文章编号:1671-7597(2014)21-0134-02   1 Hadoop生态圈   对于电商企业而言,对大量用户产生的海量数据文件进行分析是必须面临的首要任务。对海量数据进行分析时,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 日志处理模型   数据清洗完成后,可以进行用户识别处理(user identification),用户识别指的是借助识别算法识别出日志数据涉及到的访问用户,以进一步确定日志数据中的用户和前台web页面的关系。用户识别主要是通过诸如IP地址判断、请求源判断以及链接关联性判断等来实现。会话识别的作用是识别经过用户识别处理后的用户行为,判断用户从初次进入web站点到离开站点的操作。路径识别(path identification)是web服务器日志数据处理的最后一步,目的是在完整路径基础上进行会话拆分。   3 基于Hadop的数据分析系统及其应用   经过预处理后的日志文件,接下来要按照维度进行粒度划分,以生存最细分粒度的数据。日志文件的数量本来就十分庞大,再进行粒度划分后,细粒度的日志数量更加海量化,合适的选择划分工具将事半功倍,本文采用Apache Pig实现这一过程。Pig包含类似高级语言的数据分析程序,因此可以用于进行

文档评论(0)

1亿VIP精品文档

相关文档