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导入过程中如何自动创建表的解决方案
答案 0 :(得分:1)
尝试从同一位置运行sqoop命令和hive命令。
答案 1 :(得分:0)
您使用什么作为配置单元数据存储后端?默认情况下,Hive将为当前工作目录中的Metastore创建嵌入式derby数据存储。因此,当从不同的目录运行Hive和Sqoop时,您可能会得到不同的表空间。我建议将Hive配置为使用一些数据库支持的数据存储(MySQL,PostgreSQL)并配置Hive和Sqoop来使用它。
答案 2 :(得分:0)
然后,您可以使用以下命令在架构下导入所需的表:
sqoop导入
-连接jdbc:mysql:// localhost / metrics
--username root --password 1023 --table访问
--hive-import --create-hive-table --hive-table mySchema .hivevisit2