【hadoop】案例:Sqoop迁移仓库数据
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:指定导入的表名称