Sqoop 是一款用于在 Hadoop 与关系型数据库之间进行数据传输的工具,它有很多参数,可分为通用参数、导入参数和导出参数等,以下是一些常见的参数介绍:
通用参数
- --connect - 说明:指定要连接的关系型数据库的 JDBC URL。
- 示例:--connect jdbc:mysql://localhost:3306/mydb
 
- --username - 说明:指定连接数据库的用户名。
- 示例:--username root
 
- --password - 说明:指定连接数据库的密码。为了安全起见,也可以使用--password-file参数来指定包含密码的文件。
- 示例:--password mypassword
 
- 说明:指定连接数据库的密码。为了安全起见,也可以使用
- --verbose - 说明:启用详细模式,在运行过程中打印出更多的信息,有助于调试和了解操作的执行情况。
- 示例:--verbose
 
- --help - 说明:打印出 Sqoop 的帮助信息,列出所有可用的参数及其用法。
- 示例:--help
 
导入参数
- --table - 说明:指定要从关系型数据库导入数据的表名。
- 示例:--table users
 
- --columns - 说明:指定要导入的列,多个列之间用逗号分隔。
- 示例:--columns id,name,age
 
- --where - 说明:使用 SQL 的WHERE子句来过滤要导入的数据。
- 示例:--where "age > 18"
 
- 说明:使用 SQL 的
- --split-by - 说明:指定用于分割数据的列,Sqoop 会根据该列的值将数据分成多个部分,并行导入到 Hadoop 中,提高导入效率。
- 示例:--split-by id
 
- --num-mappers - 说明:指定用于导入数据的 Mapper 数量,默认值为 4。
- 示例:--num-mappers 8
 
- --target-dir - 说明:指定 HDFS 上用于存储导入数据的目标目录。
- 示例:--target-dir /user/hadoop/imported_data
 
导出参数
- --export-dir - 说明:指定 HDFS 上包含要导出数据的目录。
- 示例:--export-dir /user/hadoop/export_data
 
- --input-fields-terminated-by - 说明:指定输入数据中字段的分隔符,默认是逗号。
- 示例:--input-fields-terminated-by '\t'
 
- --update-key - 说明:指定用于更新关系型数据库中记录的键列。如果指定了该参数,Sqoop 会使用UPDATE语句来更新数据;如果未指定,则使用INSERT语句插入新记录。
- 示例:--update-key id
 
- 说明:指定用于更新关系型数据库中记录的键列。如果指定了该参数,Sqoop 会使用
- --update-mode - 说明:指定更新模式,有updateonly和allowinsert两种模式。updateonly表示只更新已存在的记录,不插入新记录;allowinsert表示如果记录不存在则插入新记录。
- 示例:--update-mode updateonly
 
- 说明:指定更新模式,有
其他参数
- --driver - 说明:指定用于连接关系型数据库的 JDBC 驱动类。通常情况下,Sqoop 可以自动检测驱动,但在某些特殊情况下可能需要手动指定。
- 示例:--driver com.mysql.jdbc.Driver
 
- --map-column-java - 说明:指定从关系型数据库列到 Java 数据类型的映射。
- 示例:--map-column-java id=Integer,name=String,age=Integer