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

大数据离线分析Hadoop项目(待完善)_第1张图片

项目流程

1.数据产生
JsSdk和javaSdk。
数据怎么到达nginx服务器上的?Uri、拼接,然后http带着这些信息,请求访问nginx服务器,nginx就可以获取采集这些信息,产生的日志规则自己定义。要注意高可用(根据实际业务场景,比如只统计pv等指标的话,丢点数据关系不大可以不配置HA,但是如果是采集后台用户订单信息时,数据不能丢就要配置HA)和负载均衡。

2.数据采集
利用flume采集到HDFS上(flume配置是否要高可用,是否要汇聚节点),目录根据时间动态生成。

3.MR数据清洗
去除没有时间戳的数据(因为我们是按时间进行划分、分析,没有时间的数据无意义);
去除长度不为4的数据(该种数据认定为爬虫的数据)。
ip解析为地域信息(纯真数据库和淘宝ip解析两种方式);
UserAgent解析:分别获取浏览器和系统的名称、版本号;
LogParser解析:将时间戳去掉.转化成毫秒,处理uri参数列表,处理后的结果以对的形式存储在map集合中。
将以上所有解析结果综合,格式化数据,存入HDFS中。

4.数据分析
七大模块:用户、浏览器、地域(MR);事件、外链、订单、浏览深度(hive)。
1)业务逻辑
2)实现思路(计算规则)
3)遇到的问题
4)MR架构,分区、分区规则;排序、排序规则;分组、分组规则。
5)Hive
6)数据仓库

5.数据应用
展示、机器学习、数据挖掘、决策支持等。

补充:
面试当中,业务逻辑一定会问你。你做过哪几个模块,模块当中你具体做了哪些(多少个)指标,实现思路是什么(具体是怎么干的)?遇到的问题?(空指针等简单的问题就不要说了,只能说明你java基础太差)

HIVE(重点) 现在很多招ETL工程师、数据仓库工程师;之前很多公司是用Oracle,但是是收费的,现在直接重新构建一个数据仓库,用hive去做。
真正做ETL的,工作难度不大,所以发展空间也不是很大,但是接触的业务会更多一点。

在公司当中,你如果想有更好的发展,去参与业务。一开始可能会不懂,但当你了解业务后,你在公司中的话语权会越来越重。

大数据一个很重要的思想:分而治之。

迭代式开发


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