张俊瑞,代 洋
(1.晋中学院信息技术与工程学院,山西 晋中 030619;2. 北京易汇众盟网络技术有限公司,北京 100089)
基于Hadoop平台的Web日志业务分析
张俊瑞1,代 洋2
(1.晋中学院信息技术与工程学院,山西 晋中 030619;2. 北京易汇众盟网络技术有限公司,北京 100089)
通过分析网站日志文件,可以清楚地知道一个网站每天的页面访问量、用户访问量、独立IP数、用户通过什么渠道和设备访问网站等,这样企业就可以通过对网站日志文件进行数据分析进而对网站进行多方面的优化建设。利用Hadoop平台存储并计算海量日志文件,利用Hive进行数据仓库建设和数据分析,使得数据更具有说服力,真正实现了让数据驱动业务,进而驱动公司发展。
大数据平台;日志业务分析;数据仓库
Web 2.0时代的到来,使网站日志数据的增长速度及交互功能都发生了很大的变化。利用传统的日志分析工具很难实现PB数量级的网站日志的处理,因此需要优秀、耐用且时效性强的处理平台和分析工具来进行数据处理和分析,以便更好地完成网站的优化,提高网站访问量,创造更大的商业价值。
从互联网发展趋势和行业内成功经验及案例来看,Hadoop+Hive已成为高效处理庞大数量级数据的平台和分析工具。本文通过Hadoop+Hive实现Web日志业务分析及其可视化。首先搭建大数据集群平台Hadoop,其次建设数据仓库Hive对网络日志进行分析,最后将一些业务指标通过可视化技术直观展示出来。
物理机硬件:处理器采用Intel(R) Core (TM) i7-4500u 1.8GHz,内存8.0GB,操作系统Windows 8。
虚拟机系统:基于VMware Workstation创建了2台虚拟机器,每台的配置为2个单核CPU,2G内存,30G硬盘,Ubuntu 14.0.4操作系统。
Hadoop[1]运行在Linux系统上,所以OS选用Ubuntu 14.0.4,其次Hadoop是基于Java语言开发的,所以必须安装JDK 1.7提供Java运行环境。安装Hadoop包含HDFS、MapReduce、YARN三部分,其中HDFS提供分布式存储环境,MapReduce提供批处理计算,而YARN调度资源;安装Hive建设数据仓库对网站日志进行数据分析得出对应的业务指标;通过Sqoop将数据仓库中表的数据导入到MySQL中。平台规划如表1所示。
表1 平台规划
大数据平台的系统架构从底端到上层分为五层,平台架构图如图1所示。
1) 数据采集层:将原始网站日志通过脚本语言代码按时从Web服务器上采集到Linux文件系统中。
2) 数据存储层:在数据采集层的基础上,通过ETL进行数据处理,形成供上层进行离线计算和业务分析的数据集,并最后将其存储在HDFS分布式文件系统之中。
3) 数据分析层:数据仓库是面向业务决策的,通过Hive数据仓库对网络日志进行离线分析,得出一些业务指标用于决策。
4) 数据共享层:介于数据分析层和数据应用层中间的桥梁,通过Sqoop将数据分析层的结果传输到MySQL数据库中,以便于数据应用层的使用。
5)数据应用层:数据产生价值的出口,其将最终的分析结果通过可视化技术展示出来,发挥出数据驱动决策的力量。
图1 平台架构图
1) 创建Hadoop用户并安装Java环境,具体步骤为:
a) 创建用户名,使用/bin/bash/作为shell。
b) 为Hadoop用户增加管理员权限。
c) 对Hadoop用户设置密码。
d) 安装JDK 1.7版本。
2) 网络配置:将集群所有的节点配置在同一局域网中,才能实现节点之间的互相连接,所以将Ubuntu的网络配置修改为桥接(Bridge)模式。
3) 安装SSH并配置SSH无密码登录节点,具体步骤为:
a) 安装SSH,生成Master节点的公钥,Master可以无密码ssh本机。
b) 配置Master节点,使Master节点可以无密码ssh节点Slave,在Slave节点上,将ssh公钥加入授权。
c) 验证。在Master节点上ssh节点Slave。
4) 安装Hadoop,配置集群环境,具体步骤为:
a) 安装Hadoop,修改文件权限,配置环境变量,使环境变量生效。
b) 修改集群配置文件,配置集群环境,修改core-site.xml和hdfs-site.xml,设置备份一份,修改mapred-site.xml和yarn-site.xml。
c) 将Master节点上的Hadoop文件夹复制到Slave节点上。
总之,在高中语文教学过程中关注生命体验,不仅体现了语文学科的人文性特点,而且有助于学生形成正确的生命价值观。语文教师应将生命体验不断地渗透教学过程中,培养学生的生命情怀,这样既可以让他们学到知识,实现既定的教学目标,也能让他们学会认识生命的价值,获得生命的成长,不断向着理想的人生进发。
5) 启动Hadoop集群,格式化Master节点上的namenode,在Master节点上启动Hadoop。
网站日志又叫做服务器日志,是记录web服务器接收处理请求以及运行时错误等各种原始信息的以.log结尾的文件[2]。网站日志包含9项内容,用空格分隔,分别为:IP地址、用户标识、访问时间及时区、请求的页面、请求状态码、返回文件的大小、链接来源、浏览器信息。
2.2.1 PV
PV(Page View)是页面浏览次数,网站每进行一次页面刷新PV+1。对所有访问者来说,PV值是指其在一天中访问页面的总和,它是衡量网站活跃程度的指标。通过对IP地址进行计数,从日志中获取访问次数可以得到PV的值。PV是衡量网站流量的两项最基本指标之一。
2.2.2 UV
UV(Unique Visitor)即独立访客数,指一天内访问网站的人数。一天之中,UV只记录进入网站的具备独立设备标识的访问者的数量,当独立访客第二次进行访问时则不计数。UV可以体现用户对网站的关注程度,是衡量网站流量的两项最基本指标之一。
2.2.3 独立IP数
2.2.4 流量来源
流量来源是指用户通过什么渠道访问网站。通过网站日志的referer聚合之后可以分析出网站的流量来源。Referer表示该请求日志从哪里来,它可以分析网站的访问来源,还可以用于分析用户偏好等,是网站广告投放评估的重要指标[4]。网站流量来源反映了用户通过什么途径访问了此网站。
2.2.5 移动设备类型
该指标统计的是用户访问网站所使用的不同设备的类型,如Android手机、Mac笔记本电脑等。通过对User Agent的匹配得出不同的移动设备类型,对设备类型占比进行统计和分析,针对设备类型占比高的设备具有的浏览器兼容性问题,必须优先对其进行处理并优化网站。
2.3.1 前期准备
1) 启动大数据平台。在Master节点上启动NameNode、SecondaryNameNode和ResourceManager,在Slave节点上启动DataNode、NodeManager,使集群良好的运行,然后在Master节点上启动Hive。
2) 使用Extract.sh脚本文件对原始日志进行数据抽样,得到一周的日志数据,将抽样后的网站日志数据的日期通过sed进行日期时间处理。
3) 通过Transform.sh脚本文件对一周的日志数据进行清洗,通过Python正则匹配,最终输出规范化的日志数据格式,提高加载的效率,方便将处理好的规范化的数据加载至数据仓库ODS层中。
2.3.2 数据仓库建设
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策[5]。本文的数据仓库分为ODS(Operational Data Store)层、DW(Data Warehouse)层和DM(Data Mining)层。
数据仓库的建设步骤为:
1) 将进行过数据清洗后的原始日志进行源数据导入。
2)将源数据存储在原始日志表(ods_weblog),然后对原始日志表进行更深层次的拆解,将request请求进行匹配得出请求路径,最终得到请求页面解析表。
3) 在dw_weblog_parser的基础上,通过对agent字段进行模式匹配,可以得到用户访问网站的移动设备类型。网站的请求包含特定的模板,通过+wp-可以进行过滤,最终得到dw_weblog_info表。
4) 通过对referer进行聚合,可以得到一周之间的流量来源表。
5) 通过对device进行聚合,可以得到一周之间的设备类型表。
6) 运用业务指标定义,对不同设备标识进行计数得到UV,对IP地址进行计数得到PV,对不同的IP地址进行计数得到IP。通过对一周时间的数据进行分析,即可得到一周之中每天的UV、PV、IP,如图2所示。
图2 日志KPI分析过程
基于Hadoop集群平台,通过HDFS存储海量日志文件,在Hive上构建一个网络日志数据仓库是十分高效的,通过MR处理大量数据时性能的提高非常可观。通过数据仓库Hive对网络日志文件进行多维度分析,一方面可以提高数据分析的效率,另一方面可以通过数据挖掘出日志文件隐藏的价值,利用其结果可以进行网站的数据化运营,以便更好地对网站进行优化,也有利于网站的长远发展。
[1] 程苗,陈华平.基于Hadoop的Web日志挖掘[J].计算机工程,2011,37(11):37-39.
[2] 李锂.浅议搜索引擎优化策略[J].中小企业管理与科技,2008(30):239-239.
[3] 江三锋,王元亮.基于Hive的海量web日志分析系统设计研究[J].软件,2015,36(04):93-96.
[4] 李妹芳.ODPS权威指南:阿里大数据平台应用开发实践[M].北京:人民邮电出版社,2015.
[5] 朱宏儒.信息技术在银行信贷业务中的运用[D].上海:华东理工大学,2005.
AnalysisofWebLogServiceBasedonHadoopPlatform
Zhang Junrui1, Dai Yang2
(1.SchoolofInformationTechnologyandEngineering,JinzhongUniversity,JinzhongShanxi030619,China;2.BeijingZMTNetworkTechnologyCo.,Ltd.,Beijing100089,China)
By analyzing the web log file, some data of a website daily could be obtained, such as amount of page visit, independent IP numbers, number of user visiting, what channels and devices users access to the website. In this way, the enterprise could analyze the data of the website log file and optimize the website in many aspects. Hadoop platform is used to store and calculate massive log files, the data warehouse construction and data analysis are carried out by using Hive. which would make data more convincing and results more intuitive. It really enables the realizing of data driven-business and promotes the company's development.
big data platform;log business analysis;visualization;data warehouse
2017-10-30
张俊瑞(1980- ),女,山西襄汾人,讲师,硕士研究生,主要研究领域为数据挖掘、智能软件技术。
1674- 4578(2017)06- 0071- 03
TP311
A