1

我正在尝试使用 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 相关的想法或文档要分享。提前致谢

4

1 回答 1

0

我无法发表评论,所以我会放弃这个作为答案。众所周知,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
    }

于 2020-08-24T04:56:56.350 回答