sqoop案例:MySQL迁移至Hive

数据库 主机 测试库
MySQL 192.168.1.22 confluence_test
Hive 集群 confluence_test

可选参数说明

--direct:使用mysqldump工具,加快MySQL数据迁移速度
--target-dir:指定hive数据在HDFS中的存储路径(默认存储位置:/user/hive/warehouse/)
--delete-target-dir:如果指定目录存在,则先删除掉
--fields-terminated-by:设置字段分隔符
--hive-overwrite:覆盖Hive表中的现有数据

1、查看MySQL中的所有数据库

sudo -u hdfs \
sqoop list-databases \
--connect jdbc:mysql://192.168.1.22:23306/ \
--username root \
--password 6yhn^YHN

2、查看confluence_test库中的表

sudo -u hdfs \
sqoop list-tables \
--connect jdbc:mysql://192.168.1.22:23306/confluence_test \
--username root \
--password 6yhn^YHN

3、查看user_mapping表中的数据

sudo -u hdfs \
sqoop eval \
--connect jdbc:mysql://192.168.1.22:23306/confluence_test \
--username root \
--password 6yhn^YHN \
--query "SELECT * FROM user_mapping;"

4、将user_mapping表导入Hive的confluence_test库

sudo -u hdfs \
sqoop import \
--connect jdbc:mysql://192.168.1.22:23306/confluence_test \
--username root \
--password 6yhn^YHN \
--hive-import \
--hive-database confluence_test \
--table user_mapping \
-m 1

5、将user_mapping表导入Hive的confluence_test库并命名为confluence_user

sudo -u hdfs \
sqoop import \
--connect jdbc:mysql://192.168.1.22:23306/confluence_test \
--username root \
--password 6yhn^YHN \
--hive-import \
--hive-database confluence_test \
--table user_mapping \
--hive-table confluence_user \
-m 1

6、将users表中id小于4的数据导入confluence_test库

sudo -u hdfs \
sqoop import \
--connect jdbc:mysql://192.168.1.22:23306/confluence_test \
--username root \
--password 6yhn^YHN \
--hive-import \
--hive-database confluence_test \
--table users \
--where "id<4" \
-m 1

7、将users表中id大于等于4的数据增量导入confluence_test库users表

sudo -u hdfs \
sqoop import \
--connect jdbc:mysql://192.168.1.22:23306/confluence_test \
--username root \
--password 6yhn^YHN \
--hive-import \
--hive-database confluence_test \
--table users \
--incremental append \
--check-column id \
--last-value 3 \
-m 1

8、将users表中id,name字段导入confluence_test库users_id表中

sudo -u hdfs \
sqoop import \
--connect jdbc:mysql://192.168.1.22:23306/confluence_test \
--username root \
--password 6yhn^YHN \
--hive-import \
--hive-database confluence_test \
--table users \
--hive-table users_id \
--columns id,name \
-m 1

9、查询出users表中id小于3的id,name数据,并导入confluence_test库users_name表中

sudo -u hdfs \
sqoop import \
--connect jdbc:mysql://192.168.1.22:23306/confluence_test \
--username root \
--password 6yhn^YHN \
--hive-import \
--hive-database confluence_test \
--hive-table users_name \
--query 'SELECT id,name FROM users where id < 3  AND $CONDITIONS' \
--target-dir /usr/1 \
-m 1
发布了146 篇原创文章 · 获赞 25 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_39680564/article/details/103271417