Sqoop常用命令及参数介绍
Sqoop常用命令介绍
命令 |
说明 |
---|---|
import |
用于将关系型数据库(如MySQL)的数据导入到HDFS、Hive、HBase等组件。 从业务数据库抽取数据到大数据平台,用于离线分析、数据仓库构建等。 |
export |
用于将HDFS、Hive中的数据导出到关系型数据库。 将大数据分析结果(如统计报表、标签数据)同步回业务数据库,支撑业务决策。 |
codegen |
用于根据关系型数据库表的结构自动生成对应的Java实体类和相关映射代码。这些生成的代码可用于自定义MapReduce任务中,方便对导入到Hadoop的数据进行结构化处理。 |
create-hive-table |
根据关系型数据库表结构自动创建Hive表(字段名、类型自动映射)。 在将数据从数据库导入Hive前,快速生成匹配的表结构,避免手动编写CREATE TABLE语句。 |
eval |
在关系型数据库中执行SQL语句(支持查询、新增、修改等),并返回结果。 用于验证数据库连接、测试SQL语句有效性、查看表数据量等(无需实际导入数据)。 |
import-all-tables |
批量导入关系型数据库中所有表的数据到HDFS(每个表对应HDFS的一个目录)。 用于全库迁移场景(如数据库备份到HDFS),需注意仅支持无外键关联的表。 |
job |
管理Sqoop任务(创建、执行、删除、列出定时任务),支持将常用命令保存为任务,便于重复执行。 用于自动化数据同步(如定时从MySQL导入数据到Hive)。 |
list-databases |
列出关系型数据库中所有数据库名称。 用于查看目标数据库服务器中的可用数据库,验证连接权限。 |
list-tables |
列出指定数据库中所有表名称。 用于查看目标数据库中的表结构,确定需要导入的表。 |
merge |
合并HDFS中的两个数据集,生成新的合并结果。 用于增量数据同步场景(如每日增量数据与历史全量数据合并)。 |
metastore |
启动Sqoop元数据服务,用于存储job命令创建的任务信息。 用于多节点共享Sqoop任务。 |
help |
查看Sqoop命令的帮助信息(包括参数说明和用法示例)。 |
version |
查看当前Sqoop的版本信息(包括内置依赖组件版本,如Hadoop、Hive等)。 |
更多Sqoop命令参数请参考Sqoop官方文档:https://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html。
公用参数介绍
分类 |
参数 |
说明 |
---|---|---|
连接数据库 |
--connect |
连接关系型数据库的url。 |
--connection-manager |
指定连接管理类。 |
|
--driver jdbc |
连接驱动包。 |
|
--help |
帮助信息。 |
|
--password |
连接数据库密码。 |
|
--username |
连接数据库的用户名。 |
|
--verbose |
在控制台打印详细信息。 |
|
import参数 |
--fields-terminated-by |
设定字段分隔符,和Hive表或HDFS文件保持一致。 |
--lines-terminated-by |
设定行分隔符,和Hive表或HDFS文件保持一致。 |
|
--mysql-delimiters |
MySQL默认分隔符设置。 |
|
export参数 |
--input-fields-terminated-by |
字段分隔符。 |
--input-lines-terminated-by |
行分隔符。 |
|
hive参数 |
--hive-delims-replacement |
用自定义的字符替换数据中的\r\n等字符。 |
--hive-drop-import-delims |
在导入数据到Hive时,去掉\r\n等字符。 |
|
--map-column-hive |
生成Hive表时可以更改字段的数据类型。 |
|
--hive-partition-key |
创建分区。 |
|
--hive-partition-value |
导入数据库指定分区。 |
|
--hive-home |
指定Hive安装目录。 |
|
--hive-import |
表示操作是从关系型数据库导入到Hive中。 |
|
--hive-overwrite |
覆盖Hive已有数据。 |
|
--create-hive-table |
创建Hive表,默认false,如果目标表不存在,则会创建目标表。 |
|
--hive-table |
指定Hive表。 |
|
--table |
关系型数据库表名。 |
|
--columns |
指定需要导入的关系型数据表字段。 |
|
--query |
指定查询语句,将查询结果导入。 |
|
hcatalog参数 |
--hcatalog-database |
指定Hive库,使用hcatalog方式导入Hive库。 |
--hcatalog-table |
指定Hive表,使用hcatalog方式导入Hive表。 |
|
其他参数 |
-m或--num-mappers |
后跟数字,表示sqoop任务的分片数。 |
--split-by |
按照某一字段进行分片,配合-m。 |
|
--target-dir |
指定HDFS临时目录。 |
|
--null-string string |
类型为null时替换字符串。 |
|
--null-non-string |
非string类型为null时替换字符串。 |
|
--check-column |
增量判断的字段。 |
|
--incremental append或lastmodified |
增量导入参数:
|
|
--last-value |
指定一个值,用于标记增量导入。 |
|
--input-null-string |
替换null字符串,如果没有指定,则字符串null将被使用。 |
|
--input-null-non-string |
替换非String的null字符串,如果没有指定,则字符串null将被使用。 |