1. 介绍sqoop-import-all-tables及其目的
将一组表从RDBMS导入HDFS的工具就是我们称之为“sqoop-import-all-tables”的工具。 在HDFS中,每个表的数据存储在一个单独的目录中。
用该命令导入所有表格时必须满足下列条件:
每个表必须具有单列主键很重要。 另外,必须使用-autoreset-to-one-mapper选项。
必须导入每个表的所有列。
通过WHERE子句,使用默认主键作为拆分列。 不得强加任何条件。
2. Sqoop Import All tables 语法
$ sqoop import-all-tables (generic-args) (import-args)
可以按任意顺序输入导入参数,但Hadoop通用参数只能在任何导入参数之前输入。
通用参数
导入控制参数
和sqoop-import相比,这些参数的行为方式相同。 但是,对于sqoop-import-all-tables,-table,-split-by,-columns和-where参数是无效的。 参数-exclude-tables仅用于 sqoop-import-all-tables。
Import Hive 参数
代码生成参数
import-all-tables不支持-class-name参数。 使用-package-name来放置所有生成的类,可以指定一个包。
3. 示例调用
从corp数据库导入所有表格:
$ sqoop import-all-tables -connect jdbc:mysql://db.foo.com/corp $ hadoop fs -ls Found 4 items: drwxr-xr-x - someuser somegrp 0 2010-04-27 17:15 / user / someuser / EMPLOYEES drwxr-xr-x - someuser somegrp 0 2010-04-27 17:15 / user / someuser / PAYCHECKS drwxr-xr-x - someuser somegrp 0 2010-04-27 17:15 / user / someuser / DEPARTMENTS drwxr-xr-x - someuser somegrp 0 2010-04-27 17:15 / user / someuser / OFFICE_SUPPLIES
xxxxx
Sqoop中的Sqoop-import-all-tables