准备
登录 hadoop1
启动 hadoop
cd /program
bin/hadoop.sh start
启动Hive
bin/hive.sh start
复制包
sqoop 需要用到 hive 的 hive-common-3.1.2.jar 包
执行下面命令,复制包:
cp /program/hive-3.1.2/lib/hive-common-3.1.2.jar /program/sqoop-1.4.7/lib/
全部导入
将MySQL某表所有字段、所有数据,导入到 Hive中
提示:如果表不存在,会自动创建表
提示:数据库必须存在,否则报错
cd sqoop-1.4.7
bin/sqoop import \
--connect jdbc:mysql://hadoop1:3306/scott \
--table dept \
--username root \
--password root \
--fields-terminated-by '\t' \
--m 1 \
--hive-import \
--hive-database default \
--hive-overwrite \
--hive-table sqoop_dept
解释
hive-import:表示导入到hivehive-overwrite:覆盖数据hive-database default:导入到 hive 的default数据库中hive-table dept:表示导入 hive 到dept表
执行过程
执行 2个 MapReduce:
第一个 MapReduce:查询MySQL,导出数据,HDFS 路径:
/user/root第二个 MapReduce:将数据导入到 Hive 中,HDFS 路径:
/hive/warehouse/sqoop_dept
注意
参数名和参数值中间只能有一个空格,否则可能报错
如下:
--password root # 前面多出空格,会报密码错误
--target-dir /test_sqoop_dept # 前面多出空格,生成的目录只有空格
查看数据
连接 Hive 数据库,执行下面sql,查看数据:
select * from default.sqoop_dept