我需要使用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个表。我仍然无法找到允许我在一个实例中导入所有表的任何选项。我曾考虑过编写脚本,但是如果没有编写脚本,我有什么方法可以做到。
答案 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-蜂房表