Sqoop 基础使用
Sqoop 版本说明
目前常见的 Sqoop 分成 1(1.4.7)和 2(1.99.7) 两个版本。
Sqoop2与1相比主要新增了 REST 接口,但是在导入数据的时候缺失了导入至 Hive 的重点功能。
注:目前主流的方案还是采用 Sqoop 1,所以本文也仅针对于 Sqoop1。
安装
在 CDH 和 HDP 集群中都可以通过新增组件的方式安装 Sqoop
命令梳理和技巧整理
基础命令样例
导入单表
样例命令如下:
1 |
|
整库导入
1 |
|
增量导入
1 |
|
参数说明
参数说明:
参数 | 说明 |
---|---|
–connect | JDBC 链接字符串 |
–username | 数据库用户名 |
–password | 数据库链接密码 |
–table | 导入表名 |
–target-dir | 导入 HDFS 的路径 |
-m | Map 数量(最终生成的文件数) |
–append | 追加模式 |
–columns | 导入列名(可以使用" 包裹列名) |
–delete-target-dir | 如果目标路径存在则删除目标路径 |
–query | 使用 SQL 查询获取数据 |
–hive-import | 导入至 Hive |
–hive-overwrite | 重写 Hive 数据 |
–hive-database | Hive 数据库名 |
–hive-table | Hive 表名 |
–check-column | 关键列,该列的类型不得为 CHAR / NCHAR / VARCHAR / VARNCHAR / LONGVARCHAR / LONGNVARCHAR |
–incremental | 增量导入模式,可选:append(递增追加),lastmodified(最新修改) |
–last-value | 上次导入的值 |
Sqoop 任务
可以使用任务的方式来免去输入 last-value
的值。
创建任务
1 |
|
列出任务
1 |
|
查看任务配置
1 |
|
运行任务
1 |
|
删除任务
1 |
|
注意事项
- 在运行导入命令时需要切换至当前用户所属的路径,因为在命令的运行过程中会产生 表名.java 的表结构文件。
- Sqoop 所需的数据库链接 jar 包需要放置在 Hadoop 的 Classpath 下。
Sqoop 基础使用
https://wangqian0306.github.io/2020/sqoop-cli/