我们正在使用Cloudera 3.7.5,并且很难配置Beeswax服务器,以便Hue可以访问Hive数据库。我按照Cloudera文档中的所有说明来设置MySQL以充当Hive的Metastore,但是当我重新启动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 / share / hue / apps / beeswax / hive / lib /”中。不幸的是我在beeswax文件夹中没有hive / lib子目录,所以我尝试制作一个。这也行不通。
有关如何将MySQL JDBC库放到Beeswax的类路径上的任何建议吗?
答案 0 :(得分:1)
我们最终决定咬紧牙关upgrade to CDH4
。将JDBC jar放在/usr/share/hive/lib
中允许Beeswax服务器完美运行而不会出现问题。
如果其他人遇到此问题我建议从CDH3升级到CDH4 ,则UI更清晰,更流畅,我们使用CDH4
的安装和维护错误要少得多。< / p>
答案 1 :(得分:0)
您必须将您的mysql连接器粘贴到HUE_HOME / apps / beeswax / hive / lib中。 如果此路径不存在,请创建hive / lib,然后粘贴mysql连接器。我希望你的问题能够得到解决。
答案 2 :(得分:0)
当你开始使用cloudera 4.5时,他们会将所有内容都移到parcel中,因此我的hive元服务器上的这个确切问题已通过此命令修复(如下)。基本上你只是重新添加模块。我确信你可以修改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/.
将罐子复制到每个包裹中。