【php精品源码栏目提醒】:网学会员鉴于大家对php精品源码十分关注,论文会员在此为大家搜集整理了“基于Hadoop_CloudBase_MySQL的日志分析系统 - 其它资料”一文,供大家参考学习
基于 Hadoop/CloudBase/MySQL 的日志分 析系统 5 摘要:社交网络及移动互联网的迅速发展,使得许多互联网企业和机构的网络日志数据规模 越来越大。
如何快速处理大规模的日志数据,从中获取有用信息而更好服务用户,成为他们 急需解决的问题。
云计算及数据仓库技术的出现,为解决这个问题提供了一种思路。
Hadoop10 是 Apache 开发的云计算开源框架,广泛应用于海量数据处理。
CloudBase 是基于 Hadoop 的 数据仓库软件,适用于大规模数据分析,可以通过使用 ANSI SQL 直接对大规模日志数据进 行方便的查询分析。
本文基于 Hadoop、CloudBase 和 MySQL 设计并实现了一个分布式网络日 志分析系统,定时从后台服务器获取网络日志,进行处理分析,并把处理结果导入 MySQL, 最后在网页上输出统计数据图。
这样一个系统可以方便企业和机构了解用户需求,提供更好15 的服务。
通过对系统进行性能测试,证明系统是有效有应用价值的。
关键词:云计算;网络日志;Hadoop;CloudBase;MySQL 中图分类号:TP391 Design and Implementation of Log Analysis System Based20 on Hadoop/CloudBase/MySQL ZHUO Haiyi ZHAO Wenshen LV Yuqin HOU Bin School of Electronic Engineering Beijing University of Posts and Telecommunications Beijing 100876 Abstract: With the rapid development of SNS and mobile internet the network log data of many25 internet companies and institutions is becoming bigger and bigger. The problem of how to processing large-scale log data quickly and deriving useful information for better serveice become a urgent problem which need to be solved. Cloud computing and data warehouse technology provides a way to solve this problem. Hadoop is open source framework which is developed by Apache and is widely used in massive data processing. CloudBase is a data warehouse software30 which is based on Hadoop. It can be used for large scale data analysis. It is very convenient to query and analyse the large-scale log data by using the ANSI SQL. We have designed and implemented a distributed network log analysis system based on Hadoop and CloudBase and MySQL. It fetchs the network log data regularly from the backend server and processes it then puts processing results into MySQL for diagram showing on the web page. Such a system can35 facilitate enterprises and institutions for understanding of user needs and then providing better services for customers. We demonstrate the effectiveness and the worth of our system by evaluating its performance. Key words: cloud computing web log HadoopCloudBaseMySQL40 0 引言 近年来,随着社交网络及移动互联网的发展,网络成为人们生活的第二世界。
互联网公 司为了吸引用户,提高用户粘性,需要不断改善用户体验,创新服务内容,提供个性化服务。
这可以通过分析网络日志获取用户相关信息1,从而改善用户体验。
网络日志中包含了大量 用户访问信息,对日志进行数据挖掘,可以提取很多有价值的信息2。
-1-45 日志数据量比较小的时候,一般应用程序就可以进行处理;但随着网站流量的增大,日 志数据规模也越来越大,单机处理方式已经不能满足日志分析的需求。
而云计算和数据仓库 技术的提出,正是为了解决大数据存储与处理的问题3,同样适用于日志分析。
本文使用云 计算框架 Hadoop、数据仓库 CloudBase 和 MySQL 构建一个网络日志分析系统,处理大规 模的日志数据。
50 Hadoop 起源于 Google 的集群系统,是 Apache 开发的开源分布式框架4。
其核心组件 有两个:其一为 HDFS,是 Google File System 的开源实现,提供负载均衡,冗余复制等功 能,对上层程序提供统一的文件系统接口5;其二为 Map/Reduce,是 Google MapReduce 的 开源实现,用于大规模数据集的并行处理6。
CloudBase 是 Business.com 开发的基于 Hadoop 的开源数据仓库软件。
它把数据存储在55 HDFS 上,使用 ANSI SQL 作为查询语言,通过把 SQL 转化为 Map/Reduce 进行查询。
它支 持 view、order by、group by、having、like、复合查询、Join 查询等功能,提供 JDBC 驱动, 支持把查询结果直接导入 RDBMS,并对 Join 算法做了优化7。
Hive 和 Pig 也是开源数据仓库软件,但 Pig 生僻的语法令人难以入手,而 Hive 虽然架 构及性能良好,支持的 HQL 类似 SQL8,但不支持把查询结果直接导入 RDBMS。
而本文60 需要把最后处理结果导入 MySQL,再由前端
PHP 生成统计图,因此我们选择 CloudBase 处 理日志文件。
1 架构设计与实现 CloudBase Tomcat/
PHP Map/Reduce pChart 日志下载 分布式 MySQL DAO Hadoop系统 图 1 系统架构图65 Fig. 1 system architecture diagram 系统整体架构如图 1 所示,主要分为三个部分,左边为日志下载子系统,负责从指定的 FTP 服务器下载日志文件,保存到指定的目录中。
中间部分为数据分析处理子系统,从指定 目录读取数据,使用 CloudBase 载入数据,把统计结果导出到 MySQL。
右边部分为统计结 果展示子系统,把统计结果做成报表呈现给用户。
70 1.1 日志下载子系统实现 日志下载子系统使用 shell 脚本实现,首先获取前一天的系统时间,作为数据下载目录 名称,新建目录。
然后链接到指定 FTP 服务器,下载前一天的日志文件,保存到本地目录 中。
这样设计的目的是为了把日志分析系统与业务逻辑系统分开,避免日志分析系统对业务 系统产生影响,同时也便于管理与部署日志分析系统。
-2-75 1.2 日志分析处理子系统实现 数据分析处理子系统是整体系统的核心,包含三个组件,分别是 CloudBase、Hadoop 和 MySQL,通过一段处理程序把它们连接起来。
Hadoop 系统可以是单机形式,也可以是分 布式部署形式,本系统采用分布式部署提高处理效率。
CloudBase 和 MySQL 只需要部署在 其中一个节点,例如可以把它们部署在 master 节点上。
部署完成后,还需要实现两个类才80 能处理日志数据。
其一为 LogParser,它是一个 UDT (用户自定义类型),CloudBase 使用 它对每行日志数据进行处理,提取需要的日志信息。
其二为 Analysis,它是主要处理类,把 三个组件联系起来完成数据的分析和处理,并导入 MySQL 数据库中。
具体流程如图 2 所示。
与MySQL建立连接 关闭MySQL连接 并新建MySQL表 与CloudBase建立连接 关闭Cloudbase连接 连接CloudBase与 删除Cloudbase与 MySQL MySQL的连接 注册LogParser 注销LogParser 新建Cloudbase表 查询Cloudbase表并把 删除Cloudbase临时表 并导入数据 结果插入MySQL表85 图 2 日志分析处理流程图 Fig. 2 Log analysis processing flow chart 程序启动处理日志的流程,首先与 MySQL 建立连接,并新建 MySQL 表,表名与日志 文件目录名相同,作为当天的日志处理结果表。
然后与 CloudBase 建立连接,为 CloudBase 建立一个 CloudBase 与 MySQL 的连接,这样才能把 CloudBase 处理结果直接插入 MySQL90 表。
之后,把 LogParser 注册到 CloudBase,这样 CloudBase 才能使用 LogParser 逐行解析日 志文件。
接着建立 CloudBase 临时表,并导入数据。
这个过程会启动一个 Map/Reduce 作业, 每个 Map 会读取日志文件,执行 LogParser 逐行解析日志取得需要的信息,然后写入 CloudBase 表。
接下来让 CloudBase 执行查询统计命令,并把查询结果导入 MySQL。
这个过 程也会启动 Map/Reduce 任务, 进行扫描查询,并把结果通过 CloudBase 与 MySQL 的连接95 隧道导入 MySQL。
最后清理 CloudBase 临时表,注销 LogParser,删除 CloudBase 与 MySQL 的连接,关闭 CloudBase 连接,关闭 MySQL 连接。
1.3 统计结果展示子系统实现 统计结果展示子系统采用 Apache Tomcat 作为 web 服务器处理网页请求,并使用
PHP 编程处理逻辑。
首先使用 DAO 读取 MySQL 数据,然后进行逻辑处理,使用 pChart 画图,100 生成报表。
我们可以通过网页选择某天、某月、甚至一整年的数据报表,从而分析用户使用 情况及发展变化趋势。
这个子系统可以根据应用需要及日志格式作相应的调整,如果是日志 格式变化,还需要修改日志分析子系统的 LogParser 类和 Analysis 类即可。
-3- 2 系统测试 2.1 实验环境105 我们使用 XEN Server 新建 5 个虚拟机,每个虚拟机分配 2GB 内存及 20G 硬盘空间,并 安装 ubuntu-11.04 系统,分别命名为 master、slave1、slave2、slave3 和 slave4。
在 master 上安装 jdk 和 Hadoop-1.0.0,修改其配置文件,设置 ssh 免密码登录到 master 及其他虚拟机, 并把 Hadoop 复制到其他虚拟机,完成 Hadoop 部署。
接着在 master 上安装 CloudBase-1.3.1, 并使用 apt-get install 命名安装 apache2、mysql-server、mysql-client、
php5、
php5-gd 和110
php5-mysql。
最后把我们编写的 java 类和相关 jar 包、shell 脚本、网站
php 源码部署到 master 上,完成整个测试系统的搭建。
2.2 实验数据和实验内容 我们从 3 个访问量比较大网站获取网络日志数据,在他们那边设置 FTP 服务器,实验 系统从 FTP 服务器下载日志文件。
通过定时启动任务,定时到相应网站下载日志文件,并115 自动进行分析处理,把结果导入 MySQL,整个过程全自动完成。
我们先使用单机模式进行 测试,并逐渐增大数据规模,记录数据处理消耗的时间,然后修改 Hadoop 配置文件,使用 分布式模式做相同数据的测试。
2.3 实验结果 通过实验,系统能够全自动完成日志数据的取得、分析处理、导入 MySQL,在网页上120 显示统计结果。
图 3 是我们记录的单机模式与分布式模式下处理不同规模数据所消耗的时间 对比图。
可以看到当数据量小于 1.5G 时,分布式模式不能发挥其优势,反倒消耗更多时间; 但随着日志数据的增大,分布式模式显示出它的优越性。
2500 单机耗时 分布式耗时 2000 1500 耗 时 /秒 1000 500 0 0 1000 2000 3000 4000 5000 6000 日 志 /MB 图 3 单机与分布式耗时比较图125 Fig. 3 Single mode and distributed mode time-consuming comparison chart -4- 3 结论 本文提出的基于 Hadoop/CloudBase/MySQL 的网络日志分析系统,能够高效分析处理大 规模网络日志数据。
利用 Hadoop 的分布式优势,可以使系统随着日志规模的增大进行扩展。
利用 CloudBase 对 SQL 的支持,互联网公司可以方便把自己的日志处理系统迁移到本系统。
130 而且本系统的处理过程全自动化,管理简单,具有很高的实用价值。
参考文献 References 1 胡光民,周亮,柯立新. 基于 Hadoop 的网络日志分析系统研究J. 电脑知识与技术,2010,6(22): 65-69. 2 王润华. 基于 Hadoop 集群的分布式日志分析系统研究J.科技信息200715:60-109.135 3 朱珠. 基于 Hadoop 的海量数据处理模型研究和应用D. 北京:北京邮电大学,2008 4 Apache. Welcome to Apache HadoopOL. 2008. http://hadoop.apache.org/. 5 Tom white. Hadoop 权威指南M. 曾大聃,周傲英. 北京:清华大学出版社,2010. 6 郭欣. 使用 Map/Reduce 进行并行计算J. 程序员,2009,10:66-67. 7 Tarandeep. CloudBase: Data warehouse system build on top of HadoopOL.2008-10-17140 http://hadoop.6.n7.nabble.com/CloudBase-Data-warehouse-system-build-on-top-of-Hadoop-td6213.html 8 彭 帅 . Hadoop Ecosystem 解 决 方 案 --- 数 据 仓 库 OL.2009-10-14. http://www.cnblogs.com/OnlyXP/archive/2009/10/14/1583450.html -5-
上一篇:
网页快速生成和页面自定义技术需求
下一篇:
谈谈我国养老旅游产品开发策略