本章介绍如何将所有表从RDBMS数据库服务器导入HDFS.每个表数据都存储在一个单独的目录中,目录名与表名相同.
语法
以下语法用于导入所有表格.
$ sqoop import-all-tables(generic-args)(import-args) $ sqoop-import- all-tables(generic-args)(import-args)
示例
让我们举一个导入的例子 userdb 数据库中的所有表.数据库 userdb 包含的表列表如下所示.
+--------------------+ | Tables | +--------------------+ | emp | | emp_add | | emp_contact | +--------------------+
以下命令用于从 userdb 数据库导入所有表.
$ sqoop import-all-tables \--connect jdbc:mysql://localhost/userdb \--username root
注意 : 如果使用import-all-tables,则必须使该数据库中的每个表都必须具有主键字段.
以下命令用于验证所有表数据到HDFS中的userdb数据库.
$ $HADOOP_HOME/bin/hadoop fs -ls
它将显示userdb数据库中的表名列表作为目录.
输出
drwxr-xr-x - hadoop supergroup 0 2014-12-22 22:50 _sqoopdrwxr-xr-x - hadoop supergroup 0 2014-12-23 01:46 empdrwxr-xr-x - hadoop supergroup 0 2014-12-23 01:50 emp_adddrwxr-xr-x - hadoop supergroup 0 2014-12-23 01:52 emp_contact