0

环境:sqoop-1.4.2 hadoop-1.0.4 hive-0.9.0

import cmd: ./bin/sqoop import --connect jdbc:mysql://localhost/metrics --username root -password 1023 --table 访问 --hive-import --create-hive-table --hive-table hivevisit2 --hive-home /home/hadoop/hive/

hdfs 中存在文件:找到 1 项 drwxr-xr-x - hadoop supergroup 0 2013-02-19 10:36 /user/hive/warehouse/hivevisit2

但在 hive 中显示表,表 hivevisit2 不存在

好像exe cmd "sqoop -hive-import" 时会自动创建表,但是为什么看不到表

如果我重新执行 cmd "./bin/sqoop import --connect jdbc:mysql://localhost/metrics --username root -password 1023 --table 访问 --hive-import --create-hive-table -- hive-table hivevisit2 --hive-home /home/hadoop/hive/"

错误显示“元数据错误:AlreadyExistsException(消息:表 hivevisit2 已存在)”

谁能告诉我解决方案如何在配置单元导入期间自动创建表

4

3 回答 3

1

尝试从同一位置运行 sqoop 命令和 hive 命令。

于 2013-11-19T22:12:59.227 回答
0

您使用什么作为配置单元数据存储后端?默认情况下,Hive 将在当前工作目录中为其元存储创建嵌入式 derby 数据存储。因此,当从不同目录运行 Hive 和 Sqoop 时,您可能会得到不同的表空间。我建议将 Hive 配置为使用一些数据库支持的数据存储(MySQL、PostgreSQL)并配置 Hive 和 Sqoop 以使用它。

于 2013-02-20T02:20:50.983 回答
0
  1. 首先,您必须创建一个类似/user/hive/warehouse/mySchema.db的模式。它只是一个名为mySchema.db的目录
  2. 然后您可以使用以下命令在架构下导入所需的表:

    sqoop import --connect jdbc:mysql://localhost/metrics --username root --password 1023 --table 访问
    --hive-import --create-hive-table --hive-table mySchema .hivevisit2

于 2019-03-08T09:46:51.683 回答