3

我们正在使用 Cloudera 3.7.5,并且很难配置 Beeswax 服务器,以便 Hue 可以访问 Hive 数据库。我按照 Cloudera 文档中的所有说明将 MySQL 设置为 Hive 的元存储,但是当我重新启动 Hue 服务并检查 Beeswax 服务器的 StdErr 日志时,我仍然看到痛苦的“javax.jdo.JDOFatalInternalException:创建事务连接工厂时出错“这是由

org.datanucleus.exceptions.NucleusException: Attempt to invoke the "DBCP" plugin to create a ConnectionPool gave an error : The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the CLASSPATH. Please check your CLASSPATH specification, and the name of the driver.

这对我来说很奇怪,因为日志还表明环境变量 HIVE_HOME 等于“/usr/lib/hive”,果然我已经复制了“mysql-connector-java-5.1.15-bin.jar”按照文档的指示,进入 /usr/lib/hive/lib 目录。

我还尝试了博客文章http://hadoopchallenges.blogspot.com/2011/03/hue-120-upgrade-and-beeswax.html上的说明,其中涉及将 mysql-connector jar 复制到“/usr/共享/色调/应用程序/蜂蜡/hive/lib/”。不幸的是,我在蜂蜡文件夹中没有 hive/lib 子目录,所以我尝试制作一个。这也没有奏效。

有什么建议可以让我将 MySQL JDBC 库放到 Beeswax 的类路径中吗?

4

3 回答 3

1

我们最终决定硬着头皮去upgrade to CDH4。将 JDBC jar 放入/usr/share/hive/lib其中可以让 Beeswax 服务器完美运行而不会出现问题。

如果其他人遇到此问题,我建议从 CDH3 升级到 CDH4,UI 更干净、更流畅,并且安装和维护错误更少CDH4

于 2012-07-03T18:36:22.910 回答
0

您必须将 mysql 连接器粘贴到 HUE_HOME/apps/beeswax/hive/lib 中。如果此路径不存在,请创建 hive/lib,然后粘贴 mysql 连接器。我希望你的问题能得到解决。

于 2012-06-27T05:29:14.573 回答
0

当您开始使用 cloudera 4.5 时,它们会将所有内容都移动到包裹中,因此我的配置单元元服务器上的这个确切问题已通过此命令(如下)修复。本质上,您只是重新添加模块。我相信您可以修改 hive 配置文件中的额外类路径,以使其忽略包裹更新。

cp /usr/lib/hive/lib/mysql-connector-java-5.1.17-bin.jar /opt/cloudera/parcels/CDH-4.2.0-1.cdh4.2.0.p0.10/lib/hive/lib/.

所以真正的修复可能是这样的:

 cp `locate mysql-connector | grep jar | head -n 1` /opt/cloudera/parcels/*/lib/hive/lib/.

这会将罐子复制到每个包裹中。

于 2013-03-20T15:35:36.347 回答