Sqoop 导入所有未与 Hive 数据库同步的表

Posted

技术标签:

【中文标题】Sqoop 导入所有未与 Hive 数据库同步的表【英文标题】:Sqoop import all tables not syncing with Hive database 【发布时间】:2016-12-24 05:50:22 【问题描述】:

我使用 sqoop 工具通过以下脚本将 mysql 数据库表导入 Hive。

sqoop import-all-tables --connect "jdbc:mysql://quickstart.cloudera:3306/retail_db" --username=retail_dba --password=cloudera --hive-import --hive-overwrite --create-hive-table --warehouse-dir=/user/hive/warehouse/

但是当我检查 hive 中的数据库时,没有retail.db。

【问题讨论】:

添加 --verbose 标志并检查 sqoop 日志 签入default 数据库。您是否看到了来自retail_db 数据库的所有表? @devツ 是的,我能看到 【参考方案1】:

如果要导入特定 hive 数据库中的所有表(已创建)。使用:

--hive-database retail

在您的 sqoop 命令中。

【讨论】:

【参考方案2】:

正如开发人员所说,如果您想对特定数据库中的所有内容进行 sqoop,请使用

--hive-database Retail_db 否则每个表都将在默认仓库目录/表名下被sqooped

【讨论】:

【参考方案3】:

您的命令将所有内容都放入此目录:/user/hive/warehouse/retail.db/

要导入 hive,请使用此参数:--hive-import,为什么要使用 --as-textfile

如果要存储为文本文件,请使用--as-textfile,然后使用 hive external table 命令在 Hive 中创建外部表。

【讨论】:

它正在导入所有表,但我切换回配置单元进行验证,显示不是数据库

以上是关于Sqoop 导入所有未与 Hive 数据库同步的表的主要内容,如果未能解决你的问题,请参考以下文章

如何用sqoop查看oracle的表

我想知道为啥我使用 sqoop 从 sqlserver 导入的 hive db 中的表正在消失

sqoop从hive导入数据到mysql时出现主键冲突

Sqoop:导入所有转换 blob 类型的表

怎样用sqoop把navicat for mysql 里的表导入到hive中

sqoop导入到hive数据表怎么查询不到?