更新时间:2025-09-30 GMT+08:00
分享

Sqoop常用命令及参数介绍

Sqoop常用命令介绍

表1 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

公用参数介绍

表2 公用参数介绍

分类

参数

说明

连接数据库

--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

增量导入参数:

  • append:追加,例如对大于last-value指定的值之后的记录进行追加导入。
  • lastmodified:最后的修改时间,追加last-value指定的日期之后的记录。

--last-value

指定一个值,用于标记增量导入。

--input-null-string

替换null字符串,如果没有指定,则字符串null将被使用。

--input-null-non-string

替换非String的null字符串,如果没有指定,则字符串null将被使用。

相关文档