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 从 sqlserver 导入的 hive db 中的表正在消失