Sqoop是一种被设计为在Hadoop与关系数据库之间传输数据的工具。您可以使用Sqoop将数据从MySQL或Oracle等关系数据库管理系统(RDBMS)导入Hadoop分布式文件系统(HDFS),在Hadoop MapReduce中转换数据,然后将数据导出回RDBMS 。Sqoop使用MapReduce导入和导出数据,还提供了并行操作以及容错能力。

0x00 sqoop命令行的语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
usage: sqoop COMMAND [ARGS]

Available commands:
codegen Generate code to interact with database records
create-hive-table Import a table definition into Hive
eval Evaluate a SQL statement and display the results
export Export an HDFS directory to a database table
help List available commands
import Import a table from a database to HDFS
import-all-tables Import tables from a database to HDFS
import-mainframe Import datasets from a mainframe server to HDFS
job Work with saved jobs
list-databases List available databases on a server
list-tables List available tables in a database
merge Merge results of incremental imports
metastore Run a standalone Sqoop metastore
version Display version information

See 'sqoop help COMMAND' for information on a specific command.

每个命令的具体含义如下:

命令 说明
list-databases 列出所有数据库名
list-tables 列出某个数据库下所有表
create-hive-table 生成与关系数据库表结构对应的hive表结构
eval 执行一个SQL语句并显示结果
import 将关系型数据库中的数据导入到HDFS(包括Hive,HBase)中
import-all-tables 导入某个数据库下所有表到HDFS中
import-mainframe 从一台主机中导入数据集至HDFS
export 从HDFS(包括Hive和HBase)中将数据导出到关系型数据库中
job 用来生成一个sqoop任务,生成后不会立即执行,需要手动执行
merge 将HDFS中不同目录下面的数据合并在一起并放入指定目录中
codegen 将关系型数据库中的表映射为一个Java类,在该类中有各列对应的各个字段
metastore 启动元数据服务
version 查看版本
help 查看帮助

常用命令有:list-tables, import, export 。

0x01 sqoop import

1
2
3
4
5
6
7
8
sqoop import \
-D mapred.job.queue.name=root.data \
--connect jdbc:mysql://mdw01:3306/common \
--username sqoop -P \
--table employee \
--mapreduce-job-name sqoop_import_table_full \
--create-hive-table --hive-import \
--hive-database default --hive-table ods_employee_ds

上述命令是全量导入,sqoop 还支持增量导入。

0x02 sqoop export

1
2
3
4
5
6
7
sqoop export \
-D mapred.job.queue.name=root.data \
--connect jdbc:mysql://mdw01:3306/common \
--username sqoop -P \
--table employee \
--mapreduce-job-name sqoop_export_table \
--export-dir /user/hive/warehouse/ods_employee_ds

参考文献

Sqoop User Guide
Sqoop 命令与参数详解
Sqoop 使用手册
数据仓库的初级手册