大数据离线分析项目(Hadoop)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大数据离线分析项目(Hadoop)

一、项目总体需求、具体设计

1、总体需求:捕获用户每天的行为数据,生成

业务日志文件,根据日志文件清洗、分析、提取出需要的价值信息(pv:页面浏览量uv:独立访客数独立IP 会话时长等),对网站的良好运营提供有价值的指标。

2、具体设计

2.1捕获(JsSDK)用户行为数据(launch

事件、pageView事件、event事件、

chargerequet事件)

2.2将捕获的数据发送给web服务器,生

成日志文件(Nginx)

2.3将日志文件上传至文件存储系统中

(Shell脚本、Flume)

2.4在文件存储系统中对日志文件进行清

洗,过滤掉脏数据和不需要的字段

(MapReuce job任务)

2.5将过滤后的日志文件导入到数据库中

(HBase)

2.6通过MapReduce程序或Hive进行统

计分析(Hive)

2.7将统计分析后的结果导入到本地数据

库中进行永久储存(Mysql)

2.8在前端进行展示

(SpringMVC+Highcharts)

二、项目架构(画图)

具体分为三个部分(如下图所示):

数据收集层

hadoop、hive、flume、kafka、shell

数据分析层

hive、MapReduce、spark

数据展示层

springmvc + highcharts

三、技术选型、特点、为什么

1.JsSDK捕获前端页面数据。Javascript 编写

页面日志生成与发送工具(原则:保持对业务代码最小影响)

特点:采用原生的JavaScript编写,以

js文件嵌入到前端,页面触发业务所关注

的事件(按照收集数据的不同分为不同的

事件)时调用相关方法。

2.Java sdk后台服务日志生成与发送工具

JavaSDK代码很简单,可以打成jar包

或者直接拷贝类到具体的项目中,正常逻

辑处理到JavaSDK所关注的事件后,调

用JavaSDK提供的api即可。

3. Nginx web服务器,产生日志文件

特点:Nginx是一个小巧而高效

的Linux下的web服务器软件,

相比较Apache它不仅有稳定性、

丰富的功能集、示例配置文件,更

重要的是Nginx是基于事件的,

它的内存使用很低,系统资源消耗

小很多。

3.shell脚本上传日志文件(数据量一般比较小

的场景,不会立即进行分析)

分割日志,每天定时分割成昨天的日志文件。(vi split.sh)

上传到HDFS。(vi put2hdfs.sh)

flume上传(数据量一般比较大的

场景,需要实时处理。)

5. HBase数据库

数据解析以后,我们把它存入

HBase表。因为:不同的事件,最

后上传到HDFS里面每行数据的字

段数量是不一样的;而且HBase

中,单表数据量相对比较大

6. MySql 最终结果存储

Mysql是关系型数据库,结构十

分清晰,能够与JavaWeb中的

SpringMVC进行很好的对接;而

且SQL语句是结构化的查询语言,

方便运营页面查询数据

7. SpringMVC+Highcharts 进行报表显示

四、具体实现需求(分析了哪些功能pv、uv)

主要实现需求:

Pv:页面的浏览次数,衡量网站用户访问的网页数量;用户每打开一个页面就记录一次,多次打开同一个页面则浏览量累计。描述用户访问网站信息,应用于基本的各个不同计算任务

Uv:独立访客数

1天内访问某站点的人数(以cookie为依据)

1天内同一访客的多次访问只计为1个访客

S_time:会话时长

详细需求:

五、项目中遇到了哪些问题,怎么解决

1、日志格式有点混乱,以至于给后面的数据清洗带来困扰

办法:最后调整数据格式,并重新定义了分隔符

2、对日志文件进行分析时,建立Hive 外部表与Hbase表的链接字段搞错,以至于

HBase与Hive整合不成功

办法:查看数据字典,查找字段,并将hive外部表的字段名和HBase表的列名

一样。

六、项目总结

通过本次项目搭建,我对大数据的实际应用,以及客户需求的具体实现有了更为

清晰的认识,同时也对之前所学到的知识进

行了温故与整合。

同时看到了自己的很多不足,究其原因,是对Hadoop以及诸多协作框架的理

解应用仅限于皮毛,缺乏透彻的研究,实

际开发能力仍大有欠缺,需要更多的实战来

历练。

总之,通过本次项目搭建我收获颇丰,

受益匪浅,并清楚了自己以后学习的重点,努力的方向。

相关文档
最新文档