在hive中分析数据然后将数据导出到mysql中练习

模块需求一:

hourly分析:统计一天24个小时中,每个小时内的活跃用户数、会话个数、会话长度

针对模块需求一,在mysql中创建对应结果表,使用sqoop将结果导出到mysql结果表中。--sqoop语句及mysql的结果表截图!!

----- 先创建外部映射hbase表中相关的列:

hive中:

CREATE EXTERNAL TABLE event_logs(

rowkey string,

pl string,

en string,

u_ud string,

u_sd string,

s_time string

)

STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:pl,info:en,info:u_ud,info:u_sd,info:s_time")

TBLPROPERTIES ("hbase.table.name" = "event_logs");

 

下面:新建hdfs上的目录,然后etl操作,清洗数据后到hbase中。

 

 

然后在hive中查询:

 

可以看到u_ud u_sd显示有具体的值。

--创建临时表:

create table stats_hourly_tmp1(

pl string,

en string,

u_ud string,

u_sd string,

s_time bigint,

hour int,

date string

) ;

对每条日志增加小时和日期字段

 

显示运行成功:

 

查看有数据。

 

--下面创建统计active users的结果表

 

然后添加数据:

 

然后查看数据:

 

-----然后统计sessions的结果表;

 

然后添加数据:

 

然后查看数据:

 

---下面就是统计会话长度的结果表

然后添加入数据;

 

查看结果:

 

-------然后下面就是将统计出的结果,使用sqoop导入到mysql中:

create table stats_hourly_active(

pl varchar(20),

times varchar(20),

hours int(10),

user_num int(10)

);

 

create table stats_hourly_session(

pl varchar(20),

times varchar(20),

hours int(10),

sess_num int(10)

);

 

create table stats_hourly_session_length(

pl varchar(20),

times varchar(20),  

hours int(10),

sess_len int(10)

);

 

下面就是在sqoop下面进行执行从hdfs导出到mysql中;

------------------------------

bin/sqoop export \

--connect jdbc:mysql://com.hadoop:3306/mydb \

--username root \

--password 000 \

--table stats_hourly_active \

--fields-terminated-by "\001" \

--export-dir '/user/hive/warehouse/stats_hourly_active'

 

bin/sqoop export \

--connect jdbc:mysql://com.hadoop:3306/mydb \

--username root \

--password 000 \

--table stats_hourly_session \

--fields-terminated-by "\001" \

--export-dir '/user/hive/warehouse/stats_hourly_session'

 

bin/sqoop export \

--connect jdbc:mysql://com.hadoop:3306/mydb \

--username root \

--password 000 \

--table stats_hourly_session_length \

--fields-terminated-by "\001" \

--export-dir '/user/hive/warehouse/stats_hourly_session_length'

 

下面在mysql中查看:

select * from stats_hourly_active;

 

select * from stats_hourly_session;

 

select * from stats_hourly_session_length;

 

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值