【问题标题】:Sqoop import all tables not syncing with Hive databaseSqoop 导入所有未与 Hive 数据库同步的表
【发布时间】: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ツ 是的,我能看到

标签: mysql hadoop hive sqoop


【解决方案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 中创建外部表。

      【讨论】:

      • 它正在导入所有表,但我切换回配置单元进行验证,显示不是数据库
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-07
      • 2017-02-03
      • 1970-01-01
      • 2016-04-26
      • 2019-07-12
      • 1970-01-01
      相关资源
      最近更新 更多