hdfs数据到hive中:

假设hdfs中已存在好了数据,路径是hdfs:/localhost:9000/user/user_w/hive_g2park/user_center_enterprise_info/*

1.提前(在hive中)准备好表, user_center_enterprise_info2 ,用于接收hdfs数据。

CREATE TABLE user_center_enterprise_info2 (
`id`string ,
`name` string
);

2.使用load data方式,加载数据,(已执行数据库选择命令 hive>use testdb;)

以下 相对/绝对 两种路径加载都行

hive>load data inpath              'hive_g2park/user_center_enterprise_info/*' into table user_center_enterprise_info;

hive>load data inpath '/user/user_w/hive_g2park/user_center_enterprise_info/*' into table user_center_enterprise_info;

此时:

hdfs dfs -ls /user/user_w/hive_g2park/user_center_enterprise_info 发现里面内容没了

3.把数据从hive写回hdfs,让数据出现在hdfs

数据是从hdfs的 hive_g2park/user_center_enterprise_info  写到hive的,

现在写道           hive_g2park/user_center_enterprise_info3 路径下 

-- 设置task数 set mapred.reduce.tasks = 1; 结果数据平均分区(分区数等于task数);
set mapred.reduce.tasks = 1;
insert overwrite directory 'hive_g2park/user_center_enterprise_info3'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
select * from g2park.user_center_enterprise_info2;

此时在hdfs下生成了新路径,

hive_g2park/user_center_enterprise_info3
并且有数据在其文件夹下

我的理解数据消失:
hive本质是map-reduce,即操作hdfs数据的方式有:spark,mr,pig,hive。

而hive只是在mr上包了一层,hive操作的时候,本质上,是直接操作的hdfs数据,也就是说hdfs数据load后,和hive数据是同一份数据
而且load data inpath ‘/user/hive/os.txt’ into table os;这种方式loca数据到hive辣么快,应该是修改了指针而已,而不是复制了一份数据到hive。

hdfs数据到hive就隐藏不见,这么设计,就是为了避免数据在被hive改动的同时,又被mr直接操作hdfs数据,删除移动什么的,造成数据的不一致,所以数据丢hive里hdfs里就看不见了

附录:

sqoop的导出参数中,hive-import作用:本次导入到hive中

导入看得到hdfs文件夹范例
sqoop import –connect jdbc:mysql://localhost:3306/user –username h –password ‘123’ \
–fields-terminated-by “\t” –table enterprise_info –delete-target-dir –target-dir ‘hive_g2park/user_center_enterprise_info’ \
–create-hive-table –hive-table g2park.user_center_enterprise_info

导入看不到hdfs文件夹范例
sqoop import –connect jdbc:mysql://localhost:3306/user –username h –password ‘123’
–fields-terminated-by “\t” –table enterprise_info –delete-target-dir
–hive-import –target-dir ‘hive_g2park/user_center_enterprise_info’
–create-hive-table –hive-table g2park.user_center_enterprise_info

 

版权声明:本文为xiaoliu66007原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xiaoliu66007/p/9445040.html