基于Hadoop+Hive+Sqoop+HBase+Zookeeper+MySql日志统计分析项目

1,项目背景

该项目是一个本地化独立的B2C商城,为应对商城每天访问量增大,日志量增大,该商城的决策者为了拓宽该商城在本地的发展,占领本地市场的更多份额,委托我司对该公司开发出一套分析该商城用户每天上网日志行为的分析项目,分析出一些核心的业务相关指标,而这些指标是无法从第三方工具中获得的,这样有利用决策者对商城的运营指定更加合理化的策略。

因为商城是一个本地化的商城,不像淘宝,京东这类大商城,面向全国的,所以日志量并不大,分配在3台机器上,大约500-1G的量,这些日志是按天进行保存的,统计数据要求按天进行实时更新,这些统计项包括浏览量PV、注册用户数、独立IP数、跳出率等指标。

2,框架搭建

Hadoop是专门处理离线大数据的专业化工具,其核心组件是HDFS+MapReduce,每天通过flume将各个节点日志文件合并推送到到Hadoop集群中,同时因为日志是Apache格式的文件,在对日志进行统计分析前,我们利用Hadoop的Mapreduce对这些数据进行清洗,保证格式是利于我们分析统计的。对清洗后的明细数据存入HBase中,因为HBase是一个海量的分布式的面向列存储的存储系统,使用IP:date:random作为行健,确保唯一,上网明细作为列族成员。Hive 定义了简单的类 SQL  查询语言,称为HQL,其底层是通过转化为MapReduce来实现数据的统计分析的,这样便于有SQL基础的人进行开发,而不必去写MapReduce代码。考虑到集群中有4台机器,为保证各节点间的协调通信,避免宕机带来的麻烦,我们通过Zookeeper实现这一功能。另外我们通过Sqoop将统计分析产生的指标导入到MySql中,通过应用程序开发人员提供视图工具展示给决策者使用。如果想查看上网日志明细,可以通过web程序访问HBase展现。

3,开发步骤

3.1使用flume把日志数据导入到hdfs中
3.2.对数据进行清洗
3.3.明细日志使用hbase存储,能够利用ip、时间查询
3.4.使用hive进行数据的多维分析
3.5.把hive分析结果使用sqoop导出到mysql中
3.6.提供视图工具供用户使用,指标查询mysql、明细查询hbase

你可能感兴趣的:(Hadoop小项目)