Hadoop HDFS + MapReduce 计算用户行为日志100万+ 300M数据

先提出一个简单需求:如下

106.19.21.143 - - [18/Jul/2018:06:30:15 +0800] "GET /servicesmng/oauth/wx07bf81a51358a68f/snsapi_base.form?code=081noraq1NoR0q0t9Eaq1ROdaq1noraZ&state=https%3A%2F%2Fwechat.zhdsbang.com%2Fweixin%2Findex.html%3Fouri%3D9ab7489f-0e61-4b6e-8fa2-2e6c9261e2bd%40supplydemand&appid=wx07bf81a51358a68f HTTP/1.1" 302 - "Mozilla/5.0 (Linux; Android 8.0; MHA-AL00 Build/HUAWEIMHA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/6.2 TBS/044109 Mobile Safari/537.36 MicroMessenger/6.6.7.1321(0x26060739) NetType/4G Language/zh_CN" 360

对如上用户行为日志做数据分析

1:分析每个请求的相应时间,然后记录 最后整理成 每个不同的相应时间总共有几次请求:
    【10,5】类似 10毫秒有五次请求,响应时间的取值是上面的最后一个空格分割的数据

2:分析每个请求的微信的版本号,然后分析统计微信版本对应本系统的适配性
    【6.6,698】类似 6.6版本有698个

3:分析不同的操作系统在使用本系统的分布
    【Android:902,IOS:1232】类似 操作系统的用户分布

4:分析不同操作系统的版本分布:
    【Android 6.1:18,Android 8.1:1928,IOS 11.4:4353】类似操作系统版本,这个一般是为了适配APP

实现方式:

/* 1: 先上传日志到linux,当然你要有一个早就能用的Hadoop运行环境
* 
* 2: 上传日志文件:hadoop fs -put localhost_access_log.txt /hdfsapi/     要记得看是否上传成功了
*
* 3: 把本项目打包,上传至指定路径【我这里是上传至:/usr/hadoop/data/】
*      我们需要使用的mvn打包方式,因为我们的外部框架 yauaa 没有包含在hadoop 中
*      mvn assembly:assembly           到项目源码根目录下执行此命令,生成包含pom内引用框架jar的jar
*
*      copy: hadoopxing-1.0-SNAPSHOT-jar-with-dependencies.jar  to Linux
*
* 4: 命令 : hadoop jar /usr/hadoop/data/hadoopxing-1.0-SNAPSHOT-jar-with-dependencies.jar com.xing.logAct.LogActivityAnalyzer hdfs://hadoop000:8020/hdfsapi/localhost_access_log.txt hdfs://hadoop000:8020/hdfsapi/output/log
*
* 5: 查看hadoop处理后的数据信息
*          adoop fs -ls /hdfsapi/output/log
*          hadoop fa -text /hdfsapi/output/log/part-r-00000
*/

GItHub 地址:https://github.com/itliuxing/hadoopxing

实现了上图的 1 -->2--->3--->4--->5

第3步的自动化,改成了手动。第5步写入至Hive也没实现,暂时还是写出到一个文件内。

所以这个东东工作量实在大。

使用信息:IDE  IDEA , Linux [Centos7] ,Maven ,java , hadoop-2.6.0-cdh5.7.0 , HDFS , YARN , MapReduce

后面此simple会继续更新至GitHub,以便作为一个完整最终包含了最初学习的HDFS到离线数据处理到最后的实时流式数据处理的Spark 。

很高兴  这是挑战自己的高度再次成功的案例,继续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值