如何使用sqoop导入将RDBMS数据导入特定的配置单元数据库

时间:2015-01-15 01:09:58

标签: mysql database import hive sqoop

我需要使用sqoop将外部数据库从mysql导入hive。我的要求是使用sqoop import将包含所有表的完整数据库导入指定的配置单元数据库。例如,我想导入mysql数据库' hadoop_practice'及其所有表格以及hive数据库&hadoop_practice'。但是,当我执行以下命令时

$ sqoop import-all-tables --connect jdbc:mysql:// localhost / hadoop_practice --username root -P --hive-import

将表导入到hive默认数据库中。我已经尝试登录到hive shell并更改数据库,但它仍然复制到hive中的默认数据库。我知道sqoop提供了将外部数据库表复制到hive数据库表的选项,但这需要我通过为每个导入提供单独的命令来复制1000个表。我仍然无法找到允许我在一个实例中导入所有表的任何选项。我曾考虑过编写脚本,但是如果没有编写脚本,我有什么方法可以做到。

3 个答案:

答案 0 :(得分:0)

您可以使用--hive-table选项指定配置单元数据库。所以命令就像

$ sqoop import-all-tables --connect jdbc:mysql:// localhost / hadoop_practice --username root -P --hive-import --hive-table hadoop_practice.db

答案 1 :(得分:0)

您使用--hive-database选项。

它在Sqoop 1.4.4版中提供:https://issues.apache.org/jira/browse/SQOOP-912

答案 2 :(得分:0)

$ sqoop import-all-tables --connect jdbc:mysql:// localhost / hadoop_practice --username root -P --hive-import - hive-database database_name --create-蜂房表