【hadoop】案例:Sqoop迁移仓库数据

发布于:2025-05-09 ⋅ 阅读:(13) ⋅ 点赞:(0)

1 数据导出:Hive导入MySQL

[hadoop@hadoop1 sqoop]$ bin/sqoop export \
> --connect 'jdbc:mysql://localhost/weather \
> --username root \
> --password 123456  \
> --table mean_temperature \
> --export-dir /user/hive/warehouse/mydb/mean_temperature \
> --input-fields-terminated-by "," \
> -m 1;
查询导出结果
mysql> select * from mean_temperature limit 10;

sqoop export命令相关参数含义:

--connect:连接MySQL的URL(可以指定数据库)

--username:连接MySQL的用户名

--password:连接MySQL的密码

--table:数据导入到MySQL中的表名

--export-dir:导出数据在HDFS中的位置

--input-fields-terminated-by:指定Hive表文件数据的分隔符,默认是"\001"(我们之前是逗号)

-m:Map任务的并行度

 

2 数据导入:MySQL导入Hive

[hadoop@hadoop1 sqoop]$ bin/sqoop import \
> --connect 'jdbc:mysql://localhost/weather \
> --username root \
> --password 123456  \
> --table mean_temperature \
> --fields-terminated-by ',' \
> --delete-target-dir \
> -m 1 \
> --hive-import \
> --hive-database weather \
> --hive-table ods_mean_temperature;
查看导入结果
hive> use weather;
hive> select * from ods_mean_temperature limit 10;

sqoop import命令相关参数含义: 

--connect:连接MySQL的URL(可以指定数据库)

--username:连接MySQL的用户名 -

-password:连接MySQL的密码

--table:MySQL中需要导出的表名

--fields-terminated-by:指定Hive表文件数据的分隔符,默认是"\001",建议用逗号

--delete-target-dir:若对应的Hive表已存在则删除

-m:Map任务的并行度 --hive-import:表示导入到hive中

--hive-database:指定导入的数据库

--hive-table:指定导入的表名称 

 


网站公告

今日签到

点亮在社区的每一天
去签到