2016-11-21 69 views
0

我正在为关于JAR文件和HUE的一些问题烦恼。 最大的目标是通过HUE使用DRILL。HUE和一个JDBC驱动程序

如此处所述,可以将数据库集成到HUE中。 所以我也尝试做到这一点。为此,我下载了一个JAR文件,并尝试将其集成到HUE中。

所以我加了一本笔记本,我的代码看起来像下面几行

[notebook] 
show_notebooks=true 
[[interpreters]] 
[[[hive]]] name = Hive interface = hiveserver2 
[[[jdbc]]] name=JDBC interface=jdbc options='{"url": "jdbc:drill:zk=r2c00.pmd.local:2181,r2c01.pmd.local:2181,r2c02.pmd.local:2181/drill/pacluster;schema=pacs2","driver": "org.apache.drill.jdbc.Driver","user": "admin","password": "admin"}' 

我看到在“记事本”

select * from pacs2.pacs2.campaign limit 10 

如果我要执行我的笔记本在HUE的接口称为JDBC下面的代码我得到以下错误:

An error occurred while calling z:java.sql.DriverManager.getConnection. : java.sql.SQLException: No suitable driver found for jdbc:drill:zk=r2c00.pmd.local:2181,r2c01.pmd.local:2181,r2c02.pmd.local:2181/drill/pacluster;schema=pacs2 at java.sql.DriverManager.getConnection(DriverManager.java:689) at java.sql.DriverManager.getConnection(DriverManager.java:247) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:231) at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:379) at py4j.Gateway.invoke(Gateway.java:259) at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133) at py4j.commands.CallCommand.execute(CallCommand.java:79) at py4j.GatewayConnection.run(GatewayConnection.java:207) at java.lang.Thread.run(Thread.java:745)

显然HUE不可能找到驱动程序。令人惊讶的是,如果我尝试通过SQuirrel SQL连接到数据库,这没有问题。

所以我的关键问题是我必须在哪里找到JDBC jar文件?这个文件有特定的位置吗?我使用HUE 3.11Cloudera CDH 5.9.0

感谢您的帮助!

彼得

+0

您需要添加合适的JDBC驱动程序添加到应用程序的类路径中。 –

+0

是的,我知道......我想我有合适的驱动程序,因为与Squirrel SQL的连接是可能的。现在关键的问题是,我如何将这个驱动程序添加到我的应用程序中 - 在这种情况下是HUE?我什么都没发现! – Peter

+0

松鼠在其类路径上具有驱动程序并不意味着它在其他Java应用程序的类路径上。 –

回答

0

色调使用DBProxy服务连接到钻(以及所有JDBC连接)。 有时,此服务可能会开始多次,并且需要手动停止它们。

  1. 检查许多DBProxy服务是如何正在运行:

    $ ps的-e -o PID,命令| grep的DBProxy

    1503 java命令/opt/hue-3.11.0/desktop/libs/librdbms/java-lib/dbproxy-1.0.jar:com.cloudera.hue.dbproxy.DBProxy

    1202的java -cp /opt/hue-3.11.0/desktop/libs/librdbms/java-lib/dbproxy-1.0.jar:/opt/drill-1.9.0/jars/jdbc-driver/drill-jdbc-all-1.9。 0.jar:com.cloudera.hue.dbproxy.DBProxy

正如你可以看到我有两个,其中一个坏了(1503)。

  1. 杀死所有DBProxy服务。

    杀1503

    杀1202

  2. 重新启动色调。

  3. 所有工作正常。

我在这个例子CLASSPATH:/opt/drill-1.9.0/jars/jdbc-driver/drill-jdbc-all-1.9.0.jar