1. sqoop的基本使用语法:
(一)从关系数据库到HDFS上
- 需要分区(–split-by )
语法:sh sqoop import --connect jdbc:mysql://ip:3306/数据库名 --username 用户名 --passwword 密码 --table 表名 --target-dir 'HDFS上的文件夹名' --field-terminated-by '分隔符' --split-by 分区的属性;
- 不需要分区(-m 1)
语法:sh sqoop import --connect jdbc:mysql://ip名:3306/数据库名 --username 用户名 --passwword 密码 --table 表名 --target-dir 'HDFS上的文件夹名' --field-terminated-by '分隔符' -m 1;
注意:–target-dir 是指HDFS上的路径,如果上没有该目录,它会自动创建对应的目录,使用 sh sqoopimport关键字。
(二)HDFS到关系型数据库中
- 语法
sh sqoop export --connect jdbc:mysql://ip名:3306/数据库名 --username 用户名 --password 密码 -export-dir 'HDFS目录' --table 表名 -m 1 --fields-terminated-by '|';
**注意:**数据库中的表不会自动创建,使用 sh sqoop export关键字。
(三)关系数据库到hive中
- 语法
sh sqoop import --connect jdbc:mysql://ip名:3306/数据库名 --username 用户名 --password 密码 --table 表名 --hive-table 表名 --fields-terminated-by '分隔符' -m 1;
**注意:**运行成功时,在HDFS网页上查看结果。
2. 遇见的问题:
No such sqoop tool: list-database. See ‘sqoop help’.
sh sqoop list-database --connect jdbc:mysql://192.168.1.101:3306/ -username 账户 -password 密码
问题所在:粗心打错了databases,不是database