sqoop导入成功,但是hive show表看不到表

时间:2013-02-19 02:46:04

标签: hadoop import hive sqoop

env:sqoop-1.4.2 hadoop-1.0.4 hive-0.9.0

导入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已存在)"

任何人都可以告诉我在hive导入过程中如何自动创建表的解决方案

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

  1. 首先,您必须创建一个类似于/ user / hive / warehouse / mySchema.db 的架构。  这只是一个名为 mySchema.db
  2. 的目录
  3. 然后,您可以使用以下命令在架构下导入所需的表:

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