hadoop蜂巢问题

时间:2009-07-17 05:37:25

标签: jdbc hadoop hive

我正在尝试使用JDBC实用地创建表。但是,我无法真正看到我从hive shell创建的表。更糟糕的是,当我从不同的目录访问hive shell时,我看到了数据库的不同结果。 我需要配置任何设置吗?

提前致谢。

5 个答案:

答案 0 :(得分:3)

确保每次都从同一目录运行配置单元,因为当您第一次启动配置单元CLI时,它会在当前目录中创建一个Metastore derby db。此derby DB包含hive表的元数据。如果更改目录,则将为hive表提供未组织的元数据。此外, Derby DB无法处理多个会话。要允许并发Hive访问,您需要使用真实数据库来管理Metastore而不是随附的wimpy little derbyDB。你可以为此下载mysql并将jdbc连接的hive属性更改为mysql type 4 pure java driver。

答案 1 :(得分:1)

尝试通过电子邮件发送Hive用户列表或IRC频道。

答案 2 :(得分:1)

您可能需要设置中央Hive Metastore(默认情况下为Derby,但它可以是mySQL / Oracle / Postgres)。 Metastore是Hive和HDFS之间的“粘合剂”。它告诉Hive你的数据文件在HDFS中的位置,它们包含什么类型的数据,它们属于哪些表等等。

有关详细信息,请参阅http://wiki.apache.org/hadoop/HiveDerbyServerMode

答案 3 :(得分:0)

检查你的hadoop日志。对我而言,当我的hadoop系统设置不正确时,就发生了这种情况。 namenode无法联系其他机器上的datanode等。

答案 4 :(得分:0)

是的,这是由于Metastore没有正确设置。 Metastore存储与您的Hive表关联的元数据(例如,表名,表位置,列名,列类型,分组/排序信息,分区信息,SerDe信息等)。

默认的Metastore是一个嵌入式Derby数据库,只能在任何给定时间由一个客户端使用。对于大多数实际目的而言,这显然不够好。与大多数用户一样,您应该将Hive安装配置为使用不同的Metastore。 MySQL似乎是一个受欢迎的选择。我使用了Cloudera网站上的this link来成功配置我的MySQL Metastore。