【问题标题】:HUE and a JDBC driverHUE 和 JDBC 驱动程序
【发布时间】:2017-03-21 19:40:33
【问题描述】:

我正在努力解决有关 JAR 文件和 HUE 的一些问题。 最大的目标是通过HUE 使用 DRILL。

如此处所述,可以在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"}'

我在HUE界面的“notebook”下看到我的notebook叫做JDBC

select * from pacs2.pacs2.campaign limit 10

如果我想执行以下代码,我会收到以下错误:

调用 z:java.sql.DriverManager.getConnection 时出错。 : java.sql.SQLException: 找不到适合 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) 在 java.sql.DriverManager.getConnection(DriverManager.java:247) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 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

感谢您的帮助!

彼得

【问题讨论】:

  • 您需要将正确的 JDBC 驱动程序添加到应用程序的类路径中。
  • 是的,我知道...我想我有正确的驱动程序,因为与 Squirrel SQL 的连接是可能的。现在的关键问题是,我如何将此驱动程序添加到我的应用程序中 - 在本例中为 HUE?我什么也没找到!
  • 松鼠在其类路径中有驱动并不意味着它在其他Java应用程序的类路径中。
  • 我知道,这就是为什么我问如何将 jar 文件添加到 HUE 使用的类路径中!
  • 快速搜索将我带到gethue.com/custom-sql-query-editors(尽管它使用了一种配置类路径的方法,这种方法很糟糕,并且大多数 Java 应用程序都不使用)。我希望它有所帮助。

标签: jdbc hue apache-drill


【解决方案1】:

Hue 使用 DBProxy 服务连接到 Drill(以及所有 JDBC 连接)。 有时此服务可以多次启动,您需要手动停止它们。

  1. 查看当前运行的 DBProxy 服务数量:

    $ ps -e -o pid,命令 | grep DBProxy

    1503 java -cp /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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    相关资源
    最近更新 更多