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

问题描述 投票:0回答:3

env: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中显示表,table hive visit2不存在

似乎当exe cmd“sqoop -hive-import”时,lt会自动创建表,但为什么当我看不到表时

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

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

谁能告诉我如何在hive导入过程中自动创建表的解决方案

hadoop import hive sqoop
3个回答
1
投票

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


0
投票

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


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
© www.soinside.com 2019 - 2024. All rights reserved.