版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guohan_solft/article/details/79331889
一、hdfs导入mysql
注意:在mysql导入hive时可以自动创建表,而hdfs导入mysql时则不能在mysql中自动创建表,因此导入前准备工作,在mysql中建议需要导入的表!
1、最简单的导入
准备工作:在mysql中建表
create table emp_import (id int,name varchar(45),age int);
hdfs中/emp_db下存在文件part-m-00000,内容如下
1,guohan,30
2,hanhan,23
3,han,15
4,hujing,10
开始导入,执行如下命令:
sqoop export \
--connect jdbc:mysql://mini1:3306/emp_db \
--password root \
--username root \
--table emp_import \
--export-dir /emp_db \
--m 1
注意:此处未指定–input-fields-terminated-by ‘,’ ,证明默认分隔符为逗号
二、 hive导mysql
原理:就是hdfs导mysql,找到hive表在hdfs上的路径,执行导入即可,注意使用–input-fields-terminated-by ’ ’
将hive中的表dw_oute_ratio_ration_cp数据导到mysql的dw_oute_ratio_ration表中,注意hive中的表字段间是用’\001’来作分隔符的
hive表数据内容如下
sqoop export \
--connect jdbc:mysql://mini1:3306/click_data \
--username root \
--password root \
--table dw_oute_ratio_ration \
--export-dir /user/hive/warehouse/shizhang.db/dw_oute_ratio_ration_cp \
--input-fields-terminated-by '\001'
运行结束后提示Export job failed!但去mysql中查询,数据已经导入成功!