在生产上,一般对数据清洗之后直接放到HDFS上,再将目录加载到分区表中,之后通过hive去查询分析数据;
1、准备数据
order_created.txt
用 tab分割
10703007267488 2014-05-01 06:01:12.334+01
10101043505096 2014-05-01 07:28:12.342+01
10103043509747 2014-05-01 07:50:12.33+01
10103043501575 2014-05-01 09:27:12.33+01
10104043514061 2014-05-01 09:03:12.324+01
order_created.txt 存放位置
[root@zjj101 soft]# pwd
/root/soft
[root@zjj101 soft]# ls
data docker hadoop-2.7.2 hive-1.2.1 myconf order_created.txt tmp
2、在hdfs上创建准备放数据的目录
准备放到这里:
/user/hive/warehouse/order_partition/
[root@zjj101 soft]# hadoop fs -mkdir /user/hive/warehouse/order_partition/event_time=2014-05-02
3、查看数据是否上传成功
4、关联元数据再查询
-- 刚刚给数据放到hdfs上面了,但是元数据没有,所有需要修复一下再执行查询语句,否则的话是查询不到的
msck repair table order_partition;
-- 执行查询语句
select *
from order_partition
where event_time = '2014-05-02';
总结:
1、准备数据
将txt文件上传到hdfs中(可借助工具Xftp、Xshell),或者通过sqoop将mysql数据导入到hdfs
2、使用hive读取hdfs上的数据,将SQL语句转变成MapReduce任务来执行,进行数据分析。