Sqoop使用说明

更新时间:2025-03-03 08:38:28

Sqoop是一款Apache社区的开源软件,支持在Hadoop生态软件和结构化数据集(例如数据库)之间进行高效的批量数据传输。

背景信息

MySQL数据导入HDFS

Master节点上执行如下命令。

sqoop import --connect <dburi>/<dbname> --username <username> --password <password> --table <tablename> --target-dir <hdfs-dir> --split-by <split-column> --check-column <col> --incremental <mode> --last-value <value>

参数

描述

参数

描述

dburi

数据库的访问链接。例如jdbc:mysql://192.168.**.**:3306/

dbname

数据库的名称。

username

数据库登录用户名。

password

数据库登录密码。

tablename

MySQL表的名称。

hdfs-dir

HDFS的写入目录。例如/user/hive/result

split-column

可选参数。指定一个用于切分任务的列,默认为表主键列。

col

可选参数。增量导入场景的检查列。

mode

可选参数。增量导入模式,支持appendlastmodified两种模式。

value

可选参数。指定上次增量导入的检查列的最大值。

详细的参数信息请参见Sqoop Import

HDFS数据导入MySQL

创建好对应HDFS中的数据结构的MySQL表后,在集群的Master节点上执行如下命令。

sqoop export --connect <dburi>/<dbname> --username <username> --password <password> --table <tablename> --export-dir <hdfs-dir>

参数

描述

参数

描述

dburi

数据库的访问链接。例如jdbc:mysql://192.168.**.**:3306/

dbname

数据库的名称。

username

数据库登录用户名。

password

数据库登录密码。

tablename

MySQL表的名称。

hdfs-dir

HDFS的写入目录。例如/user/hive/result

详细的参数信息请参见Sqoop Import

MySQL数据导入Hive

在集群的Master节点上执行如下命令。

sqoop import --connect <dburi>/<dbname> --username <username> --password <password> --table <tablename> --check-column <col> --incremental <mode> --last-value <value> --fields-terminated-by "\t" --lines-terminated-by "\n" --hive-import --target-dir <hdfs-dir> --hive-table <hive-tablename>

参数

描述

参数

描述

dburi

数据库的访问链接。例如jdbc:mysql://192.168.**.**:3306/

dbname

数据库的名称。

username

数据库登录用户名。

password

数据库登录密码。

tablename

MySQL表的名称。

col

可选参数。增量导入场景的检查列。

mode

可选参数。增量导入模式,支持appendlastmodified两种模式。

value

可选参数。指定上次增量导入的检查列的最大值。

hdfs-dir

HDFS的写入目录。例如/user/hive/result

hive-tablename

Hive中的表名。

详细的参数信息请参见Sqoop Import

Hive数据导入MySQL

执行命令与导入HDFS数据至MySQL一致,但需要指定Hive表对应的HDFS路径。详情请参见HDFS数据导入MySQL

MySQL数据导入OSS

在集群的Master节点上执行如下命令。

sqoop import --connect <dburi>/<dbname> --username <username> --password <password> --table <tablename> --target-dir <oss-dir> --temporary-rootdir <oss-tmpdir> --check-column <col> --incremental <mode> --last-value <value>

参数

描述

参数

描述

dburi

数据库的访问链接。例如jdbc:mysql://192.168.**.**:3306/

dbname

数据库的名称。

username

数据库登录用户名。

password

数据库登录密码。

tablename

MySQL表的名称。

oss-dir

OSS的写入目录。例如oss://<AccessKeyId>:<AccessKeySecret>@<BucketName>.oss-cn-hangzhou-internal.aliyuncs.com/result

oss-tmpdir

临时写入目录。指定modeappend模式时,需要指定该参数。

采用append模式后,Sqoop会先将数据导入临时目录,然后将文件重命名为正常目标目录。如果目标目录已经存在于HDFS中,则Sqoop拒绝导入并覆盖该目录的内容。

col

可选参数。增量导入场景的检查列。

mode

可选参数。增量导入模式,支持appendlastmodified两种模式。

value

可选参数。指定上次增量导入的检查列的最大值。

详细的参数信息请参见Sqoop Import

OSS数据导入MySQL

创建好对应OSS中数据结构的MySQL表后,在集群的Master节点上执行如下命令。

sqoop export --connect <dburi>/<dbname> --username <username> --password <password> --table <tablename> --export-dir <oss-dir>

参数

描述

参数

描述

dburi

数据库的访问链接。例如jdbc:mysql://192.168.**.**:3306/

dbname

数据库的名称。

username

数据库登录用户名。

password

数据库登录密码。

tablename

MySQL表的名称。

oss-dir

OSS的写入目录。例如oss://<AccessKeyId>:<AccessKeySecret>@<BucketName>.oss-cn-hangzhou-internal.aliyuncs.com/result

详细的参数信息请参见Sqoop Import

使用SQL作为导入条件

命令和参数如下所示。

sqoop import --connect <dburi>/<dbname> --username <username> --password <password> --query <query-sql> --split-by <sp-column> --hive-import --hive-table <hive-tablename> --target-dir <hdfs-dir>

参数

描述

参数

描述

dburi

数据库的访问链接。例如jdbc:mysql://192.168.**.**:3306/

dbname

数据库的名称。

username

数据库登录用户名。

password

数据库登录密码。

query-sql

使用的查询语句。例如SELECT * FROM profile WHERE id>1 AND \$CONDITIONS

sp-column

进行切分的条件。通常跟MySQL表的主键有关。

hdfs-dir

HDFS的写入目录。例如/user/hive/result

hive-tablename

Hive中的表名。

详细的参数信息请参见Sqoop Import

集群和其他数据库的网络配置请参见在 E-MapReduce上使用 Sqoop工具与数据库同步数据进行网络配置

  • 本页导读 (1)
  • 背景信息
  • 将MySQL数据导入HDFS
  • 将HDFS数据导入MySQL
  • 将MySQL数据导入Hive
  • 将Hive数据导入MySQL
  • 将MySQL数据导入OSS
  • 将OSS数据导入MySQL
  • 使用SQL作为导入条件

点击开启售前

在线咨询服务