1 Star 3 Fork 0

pinkhello / hadoop

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

基于hadoop数据分析及周边项目实战:

  1. java 操作HBASE、HBASE结合MapReduce批量导入数据

  2. java操作HDFS

  3. MapReduce代码编写

  4. hadoop自定义类型统计手机上网流量

  5. RPC编写

  6. java操作HIVE

  7. 网络日志分析

    ...

基于hadoop-1.1.2 开发 hadoop 相关项目版本:hive-0.9.0、hbase-0.94.7、zookeeper-3.4.5、sqoop-1.4.3

hadoop自定义类型统计手机上网流量

使用自定义类型来统计手机上网流量,日志数据格式如下:

1363157984041 13660577991 5C-0E-8B-92-5C-20:CMCC-EASY 120.197.40.4 s19.cnzz.com 站点统计 24 9 6960 690 200 1363157973098 15013685858 5C-0E-8B-C7-F7-90:CMCC 120.197.40.4 rank.ie.sogou.com 搜索引擎 28 27 3659 3538 200

从左到右分别代表:记录报告时间戳、手机号码、APMAC、ACMAC、访问的网址、网址种类、上行数据报数、下行数据报数、上行总流量、下行总流量

统计不同手机号的流量总和:上行数据报数、下行数据报数、上行总流量、下行总流量纵向统计

1.在hdfs根目录下,创建/wlan

bin/hadoop  dfs -mkdir /wlan

2.上传数据至/wlan下

bin/hadoop dfs -put  xxx.dat    /wlan

3.执行mapreduce包下KpiApp.java程序进行统计

网站日志数据分析

网站日志格式是apache common日志格式, 分析一些核心指标,供运营决策者使用,获取一些业务相关的指标,这些指标是在第三方工具中无法获得。

  1. 在hdfs中创建目录
bin/hadoop dfs -mkdir /xxx_logs  

2.将hmbbs中HmbbsClear.java程序打包成jar文件

3.执行 upload_to_hdfs.sh脚本:上传数据至hdfs的/xxx_logs目录下并调jar程序,清洗指定日期数据将结果存至不同目录下(以日期命名)

清洗之前的数据:

清洗之前的数据

清洗过程:

清洗过程

清洗之后的数据:

清洗之后的数据

4.使用hive对清洗后的数据进行统计,建立外部分区表,脚本:

CREATE EXTERNAL  TABLE hmbbs(ip string,atime string,url string) PARTITIONED	BY (logdata string) ROW FORMAT DELIMITED FIELDS  TREMINATED BY '\t'	LOCATION  '/hmbbs_cleaned';

5.增加分区,脚本:

ALTER TABLE hmbbs  ADD PARTITION(logdata='2013-05-30')  LOCATION  '/hmbbs_cleaned/2013-05-30'

6.每天都要产生相应分区,将分区脚本写入upload_to_hdfs.sh,在上一天的数据清洗后自动加上该天分区

7.统计每日的pv,代码如下:

CREATE TABLE hmbbs_pv_2013_05_30 AS SELECT COUNT(1) AS PV FROM hmbbs WHERE logdate='2013_05_30';

8.统计每日的注册用户数,代码如下:

 CREATE TABLE hmbbs_reguser_2013_05_30 AS SELECT COUNT(1) AS REGUSER FROM hmbbs WHERE logdate='2013_05_30' AND INSTR(url,'member.php?mod=register')>0;

9.统计每日的独立ip,代码如下:

 CREATE TABLE hmbbs_ip_2013_05_30 AS SELECT COUNT(DISTINCT ip) AS IP FROM hmbbs WHERE logdate='2013_05_30';

10.统计每日的跳出用户,代码如下:

``` 
CREATE TABLE hmbbs_jumper_2013_05_30 AS SELECT COUNT(1) AS jumper FROM (SELECT COUNT(ip) AS times FROM hmbbs WHERE logdate='2013_05_30' GROUP BY ip HAVING times=1) e;
```

11.把每天统计的数据放入一张表:

 ```
 CREATE TABLE hmbbs_2013_05_30 AS SELECT '2013_05_30', a.pv, b.reguser, c.ip, d.jumper FROM hmbbs_pv_2013_05_30 a
 JOIN hmbbs_reguser_2013_05_30 b ON 1=1 
 JOIN hmbbs_ip_2013_05_30 c ON 1=1 
 JOIN hmbbs_jumper_2013_05_30 d ON 1=1 ;
 
  ```

12.使用sqoop把数据从hive导入到mysql中,脚本如下:

 sqoop export --connect  jdbc:mysql://hadoop:3306/hmbbs --username root -password admin  --table hmbbs_logs_stat
 --fields-terminated-by '\001' --export-dir '/hive/hmbbs_2013_05_30'

13.添加每天凌晨1点执行脚本调度

空文件

简介

基于hadoop数据分析及周边项目实战。 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/openWolf/hadoop.git
git@gitee.com:openWolf/hadoop.git
openWolf
hadoop
hadoop
master

搜索帮助