##1、项目简介

本项目主要设计一个基于Hadoop的日志分析系统。其中的日志数据主要来自于某系统开发测试期间的服务器访问日志数据(Tomcat),通过对这些日志数据利用正则表达式等技术手段进行处理,提取出匹配到的目标数据信息,将其进行归类化处理,而对日志分析处理方式中,本文探究了直接利用Hadoop的日志分析功能和利用Hadoop+Hbase+Hive结合的技术实现对日志进行分析的功能,作为对云计算技术的相关学习与入门,着重对相关技术的实现,代码结构的构成等进行研究,分析两种方式是如何实现日志分析功能的,并通过具体的编程实现相关的日志分析功能。

本项目纯属自娱自乐型,仅供入门Hadoop的同学参考,大神请忽略

代码、数据和详细的系统文档说明,已经上传百度云盘,全套开发工具(Hadoop-2.7.2/Hbase-1.1.2/Hive-1.2.1/Zookeeper-3.4.6/Mysql/VMware/Ubuntu14.0)。
项目的网盘地址:
链接:https://pan.baidu.com/s/1dGbylSd,另外一部分是技术文档和代码(需要找本人索要)
联系方式:
邮箱:wkang1993@outlook.com(邮件内容请告知作何用?欢迎技术交流,不限于Hadoop/Oracle/Java/其他)

##2、环境

hadoop-2.7.2+ hbase-1.1.2+ zookeeper-3.4.6+hive-1.2.1+Mysql(作为元数据库)
三台虚拟机:
系统:Ubuntu14.0系统,JDK1.7
Hadoop: 1个Master(3G内存,作为NameNode) 2个Slave(1.5G内存,作为DataNode)
注(各个部分在整个环境中的角色功能):
Hadoop:底层的HDFS环境,数据的存储归根结底还是存储在HDFS上的
Hbase:数据库
Zookeeper:用来进行集群管理
Hive:将Map/Reduce的一系列操作封装成了HQL(类似于SQL),方便统计查询数据
Mysql:Hive需要数据库作为元数据,Mysql充当元数据库的作用

##3、数据说明

参考项目文档《基于Hadoop的日志分析系统》(在网盘资料里有)

##4、处理流程

两种实现方式:
1 纯基于Hadoop进行统计分析
(1)日志文件数据上传至HDFS
(2)利用Map/Reduce,根据正则表达式进行统计(类似于词频统计)
(3)利用Partitioner类,根据正则匹配,将IP访问量统计结果,每天访问量统计结果,时间段统计结果,访问方法比例统计结果输出到不同的文件(这时候结果还没有排序)
(4)对HDFS输出结果进行排序
(5)利用Echart进行结果展示

2 基于Hadoop+Hbase+Hive进行统计分析
(1)将本地的日志数据文件利用正则表达式进行提取,并抽入到Hbase
(2)利用Hive进行统计,统计结果和第一种方法一样
(3)利用Echart进行结果展示
##5、结果分析
实验结果分为四个部分:

1,IP访问次数统计图

从图中可以看出每个IP访问的次数和各IP所占比例,其中开发人员访问次数占比很高。

2,访问时段统计

从图中可以看出一天中每个时段访问Tomcat的次数。其中,3点到8点的访问次数很少,表明这个时间段人们没有在工作;而10点到凌晨2点访问次数一直都很多,表明这个时间段人们在工作,并且工作到很晚。

3,访问请求方式统计

从图中可以看出,两种访问请求方式的所占的比例。其中,使用get()方法访问Tomcat的次数远远高于使用post()方法访问的次数。

4,统计历史每天的访问量

从图中可以看出每天访问Tomcat的次数。其中,11月和12月访问Tomcat的次数比9月10月高,12月9日这天访问Tomcat的次数最高。

##6、参考资料以及需要注意的问题

5.1, Hadoop环境搭建(基本就是根据这个教程的流程来做的)
http://www.powerxing.com/install-hadoop-cluster/

5.2, Hbase安装与配置
http://www.myexception.cn/internet/2034808.html
http://aperise.iteye.com/blog/2254460
http://blog.chedushi.com/archives/9747
http://blog.csdn.net/sinat_30569973/article/details/52232850
http://blog.csdn.net/yinlongfei_love/article/details/51786616

5.3, hadoop集群配置之hive1.2.0安装部署(本次实践采用远程mysql,即mysql搭建在本地,而不是在虚拟机)
http://www.mincoder.com/article/5809.shtml
http://blog.csdn.net/yingxiake/article/details/51656970
http://blog.csdn.net/thdline/article/details/51714431
http://blog.csdn.net/zhihaoma/article/details/48578589
http://www.cnblogs.com/edisonchou/p/4426096.html
需要注意的几点:
(1)找到一个叫jline-2.1.2.jar的文件,复制他,去hadoop主目录将hadoop下的三个同名但不同版本的jline替换成刚刚复制的。(原版本删除)
(2)运行元数据服务:
在主目录输入(在hive目录下而不是其bin目录下进入 )
bin/hive --service metastore
(3)运行hive server
bin/hive --service hiveserver(可能是根据版本不同,如果时比较新的hive,需要在后面的命令行后面加2)见下面的
(4)以上的hiveserver在hive1.2.1中并不会出现,官网的说法是:
HiveServer is scheduled to be removed from Hive releases starting Hive 0.15. See HIVE-6977. Please switch over to HiveServer2.

5.4,hadoop,zookeeper,Hbase启动关闭顺序
(1)运行hadoop(主机上运行就可以了)
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
(2)zookeeper运行(每个机子上面都要运行)
/usr/zookeeper-3.4.6/bin/zkServer.sh start
(3)运行Hbase(主机上运行就可以)
/usr/hbase-1.1.2/bin/start-hbase.sh
(4) 运行Hive(配置了的机子上运行)
hive --service metastore
hive --service hiveserver2
(5) 关闭Hive
直接关闭窗口,在jps命令之后可以看到runJar进程消失
(6)关闭Hbase
/usr/hbase-1.1.2/bin/stop-hbase.sh
(7)关闭zookeeper
/usr/zookeeper-3.4.6/bin/zkServer.sh stop
(8)关闭hadoop
stop-yarn.sh
stop-dfs.sh
mr-jobhistory-daemon.sh stop historyserver

5.5,Hbase和Hive整合
http://www.open-open.com/lib/view/open1414634201872.html
http://www.aboutyun.com/thread-6546-1-1.html
http://blog.csdn.net/u011523533/article/details/50480608
https://www.iteblog.com/archives/1718
http://blog.csdn.net/wulantian/article/details/38111683(这一篇理解怎么通过hive来操作Hbase)
Hbase和Hive整合问题 :
1、hbase中的空cell在hive中会补null
2、hive和hbase中不匹配的字段会补null
3、Bytes类型的数据,建hive表示加#b。cf:val#s 中的#s就表示类型为string,cf:foo没有配置类型,则采用hbase.table.default.storage.type的配置,#b为binary

鉴于自博客发布以来,有很多人来索要技术文档,之前百度网盘多次链接失效,需要重新设置并回复各位来者邮件,精力有限,望包含!如果您觉得有用的话,欢迎打赏一下(按照自己觉得是否有帮助,自设金额)!

【Hadoop】基于Hadoop/Hbase/Hive的小型离线服务器日志分析应用相关推荐

  1. 基于Boost::beast模块的小型http服务器

    基于Boost::beast模块的小型http服务器 实现功能 C++实现代码 实现功能 基于Boost::beast模块的小型http服务器 C++实现代码 #include <boost/b ...

  2. mysql 花生壳 2003_基于HTTP协议实现的小型web服务器的方法

    这篇文章主要介绍了基于HTTP协议实现的小型web服务器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 我们先了解一下这个 ...

  3. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

  4. 基于HTTP协议实现的小型web服务器

    我们先了解一下这个项目最终能达到的一个目标,然后以这个来进行项目的分析: 1.实现最基本的HTTP/1.0版本的web服务器,客户端能够使用GET.POST方法请求资源 2.服务器将客户请求的资源以h ...

  5. 基于Spark对某移动APP流量访问日志分析(Java版)

    目录 需求分析 数据原型 设计思路 数据模型及演化过程 实施过程 需求分析 我们来根据移动设备唯一标识deviceID来计算来自客户端用户访问日志请求和响应的上行流量.下行流量的记录. 上行流量:指的 ...

  6. 海量Web日志分析 用Hadoop提取KPI统计指标

    海量Web日志分析 用Hadoop提取KPI统计指标 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahou ...

  7. python 分析大数据日志_大数据Web日志分析 用Hadoop统计KPI指标实例

    可以带着下面问题来阅读文章 问题: 1.MapReduce在日志分析的作用 思考: 该如何架构kpi系统,需要考虑什么问题. kpi:关键绩效指标法,即KPI绩效考核,是企业绩效考核的方法之一,其特点 ...

  8. php怎么把日志推送过去_实践 | 基于Flink的用户行为日志分析系统

    用户行为日志分析是实时数据处理很常见的一个应用场景,比如常见的PV.UV统计.本文将基于Flink从0到1构建一个用户行为日志分析系统,包括架构设计与代码实现.本文分享将完整呈现日志分析系统的数据处理 ...

  9. 基于Hadoop技术实现的离线电商分析平台(Flume、Hadoop、Hbase、SpringMVC、highcharts)- 驴妈妈旅游项目

    离线数据分析平台是一种利用hadoop集群开发工具的一种方式,主要作用是帮助公司对网站的应用有一个比较好的了解.尤其是在电商.旅游.银行.证券.游戏等领域有非常广泛,因为这些领域对数据和用户的特性把握 ...

最新文章

  1. 生成批量缩率图_Windows系统实战之:批量生成某类型文件
  2. 最简单的iOS网络请求
  3. 打开摄像头,2D插画实时变动画,中国程序媛出品,Demo在线可玩
  4. 移动机器人传感器---IMU
  5. js中当等于最小值是让代码不执行_网页中JS函数自动执行常用三种方法
  6. hdu 3395(费用流,二分图的最大权匹配)
  7. 用java代码写美国时间_如何衡量Java代码所用的时间?
  8. Socket网络编程【获取本机IP】
  9. linux 查找某目录下包含关键字内容的文件(文件内容、grep)
  10. python面向对象变成(1):类的基本概念
  11. iOS开发——基础篇——iOS开发 Xcode8中遇到的问题及改动
  12. X Lossless Decoder for mac(XLD音频无损解码器)
  13. [BZOJ 5074]小B的数字
  14. 自定义分区partitioner实现数据分区存储
  15. CreateFile和WriteFile
  16. java自学网视频教程,系列教学
  17. Filebeat日志收集
  18. VBA代码片之获取行列号
  19. 彻底理解nth-child和nth-of-type的区别
  20. XFTP中文目录乱码

热门文章

  1. gpd微型计算机,获《微型计算机》称赞,GPD MicroPC工程师的随身利器
  2. PHPNOW添加虚拟主机(一个服务器多个域名)
  3. 中国科学院大学计算机与科学技术学院,关洪涛 - 中国科学院大学 - 计算机科学与技术学院...
  4. 操作系统面试常问——for考研复试面试
  5. 使用 Ngrx ActionSubject 监听 Dispatched NgRx Actions
  6. 【数据库应用-2】——CDA
  7. 5种限流算法,7种限流方式,挡住突发流量
  8. android加载百分比功能,android进度条怎么显示百分比
  9. EE转CS:2020实习之路(华为、阿里、招行等)
  10. python中return_Python 中return用法及意义