一、启动hadoop集群
cd /opt/hadoop/sbin
./start-all.sh
二、准备数据
cd /opt/bigdatas/
上传u.data数据,将linux本地u.data上传到hadoop:
hadoop fs -put /opt/bigdatas/u.data /opt/bigdata/
hadoop fs -ls /opt/bigdata/
三、远程连接hive
1、在hadoop01下启动hive:
cd /opt/hive/bin
./hiveserver2
2、在hadoop02远程连接:
cd /opt/hive
bin/beeline
! connect jdbc:hive2://hadoop01:10000
输入hadoop01账号密码
show databases;
四、创建表
create external table udata(user_id string,item_id string,rating string,timestamps string)
row format delimited
fields terminated by '\t' --- 以\t分隔
location '/opt/bigdata'; --- 存储在hadoop上的外部数据
show tables;
五、查询表
1、查询前10条数据
select * from udata limit 10;
2、根据时间戳查询最大值和最小值
(推荐数据里面,想知道,距离现在最近的时间是什么时候
最远的时间是什么时候)
select max(timestamps) as max_tm,min(timestamps) as min_tm from udata;
3、能查看用户的行为时间点,可以用这个数据做一个数据清洗的规则
#collect_list,将数据搞成数组的形式。这种情况得出的数据用处:在同一个时间,多次评论,可能会有刷单的嫌疑。挖掘的意义。
select user_id,collect_list(cast (days as bigint)) as days_list from (select user_id,
((cast(893286638 as bigint)-cast(timestamps as bigint))/(60*60*24)) as days from udata)t group by user_id limit 10;