基于大数据处理技术Hadoop的论坛日志分析_谢树铭.caj
//
Paste_Image.png
使用 HBase 框架对用户的【消费记录可以实现毫秒级查询】。
淘宝的【推荐系统和自定义筛选使用的是 Hive】,可以精确地查询海量的数据。
//
Paste_Image.png
//
2.2.1
功能概述
论坛日志分析系统主要用于通过【收集】到的日志信息,【清洗】数据后,
【统计】出页面
的浏览量
PV(Page View)
、注册用户数、网站访问的 ip 数、网站访问的跳出率。
论坛的总浏览量可以发现论坛的受欢迎程度,用户对网站的
兴趣程度,就好比【电视收视率】对于电视剧一样,
PV
的统计就是简单的计算每个日志
文件中记录的总和。
//流程
论坛系统每天产生的日志文件,是
Apache Commong 格式,每行记录有 5 部分组
成,分别是访问 ip、访问时间、访问资源、访问状态、本次流量。利用
Flume 把日志文件导入到Hadoop的文件系统HDFS上,然后用
Map Reduce程序对数据进行清洗,
清洗完后再利用 Hive
对数据根据需求和指标进行统计分析,若想查询所有的数据信息,
利用
HBase
查询展现所有的数据,分析后的数据再利用
sqoop
导入到集群外的数据库
中。
把系统脚本放入
linux
调度器上,设定每天凌晨 1 点的时候自动运行项目,处理
昨天的日志文件数据。
公司决策者次日就可以得到想要的数据。
从上可得出论坛日志分析系统可以分为五个功能模块,文件上传功能模块、数据
清洗功能模块、数据统计分析功能模块、数据导出功能模块、数据展现功能模块。
Paste_Image.png
//
Hadoop
的整个体系结构就是构建在
RPC
之上
的,无论框架如何封装,底层都是通过
RPC
进行交互的。如下图示:
Paste_Image.png
//
3.2.2
客户端与
HDFS
远程交互的
RPC
机制算法实现
通过查看源码,分析可得,
Hadoop
的
RPC
算法实现主要由三个类完成,
RPC
、
Client
、
Server
,分别提供对外
RPC
编程接口、客户端实现和服务器端的实现。
Hadoop RPC
对外提供的接口方法主要有
public static Versioned Protocol wait For Proxy(),
负责创建客
户端的代理对象,向服务器端发起
RPC
请求。
public static Server get Server(),
负责创建
服务器端对象,用来处理客户端发起的请求
[28]
。
Hadoop
的主节点
Name Node
是
Hadoop RPC
的服务端,底层调用
get Server()
方法,
实现了很多接口以满足不同通信的需要,如
Client Protocol
是客户端
(File System)
与
Name Node
通信的接口,
Datanode Protocol
是
Data Node
与
Name Node
通信的接口,
Namenode Protocol
是
Secondary Name Node
与
Name Node
通信的接口。这些接口都继
承了
versionedprotocol
接口。
客户端不是直接通过调用
getproxy()
或
waitfoproxy()
方法与服务器端通信的,而是
用
File System
类操作的,
filesystem
调用了
Distributed File System,Distributed File System
调用
DFSClient
对象,
DFSClient
是直接调用
Name Node
接口的对象与
Name Node
打
交道的。具体算法步骤如下表:
Paste_Image.png
Paste_Image.png
//p35
Paste_Image.png
Paste_Image.png
//
Paste_Image.png