【问题标题】:Hive JDBC Driver PythonHive JDBC 驱动程序 Python
【发布时间】:2020-05-22 15:49:41
【问题描述】:

我正在尝试使用 python 中的 Jaydebeapi 连接到 Hive 服务器。

但我不知道我需要添加哪个 jar 文件来建立我的连接。

driver = 'org.apache.hive.jdbc.HiveDriver'
url_path = 'jdbc:hive2://link:port/db'
driver_arg ={'ssl':'*',
             'sslTrustStore':'*',
             'trustStorePassword':'*',
             'transportMode':'*',
             'httpPath':'*',
             'hive.tez.container.size':'*',
             'hive.tez.java.opts':'*'
            }

jarFile = [DIR + '']

conn_hive = jaydebeapi.connect(jclassname=driver,
                               url=url_path,
                               driver_args=driver_arg,
                               jars=jarFile
                              )

如果你对哪个有任何想法

实际上,我得到了这个错误:

java.lang.NoClassDefFoundErrorPyRaisable: java.lang.NoClassDefFoundError: org/apache/hive/service/cli/thrift/TCLIService$Iface

如果您有与 org.apache.hive.jdbc.HiveDriver 和 jar 相关的想法或文档要分享。 提前致谢

【问题讨论】:

  • 我试过了:hive-jdbc-3.1.2.jar 但结果是一样的
  • 您似乎缺少一个或多个依赖项。检查您正在使用的驱动程序的文档。

标签: python jdbc hive jaydebeapi


【解决方案1】:

我无法发表评论,因此我将放弃此作为答案。众所周知,hive jar 没有连接到 hive 所需的所有必要依赖项。我用这个库hive-jdbc-uber-2.6.3.0-235.jar 代替了下面的配置

HIVE_CONFIG = {
    "jclassname":"org.apache.hive.jdbc.HiveDriver",
    "url": HIVE_URL,
    "driver_args": {"user": f'{HIVE_USER}', "password": f'{HIVE_PASSWORD}'},
    "jars": "../libs/hive-jdbc-uber-2.6.3.0-235.jar
    }

【讨论】:

  • 与我的用例不匹配:/ .. 我不断收到“java.lang.RuntimeException: Class org.apache.hive.jdbc.HiveDriver not found”错误
猜你喜欢
  • 2017-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-11
相关资源
最近更新 更多