【问题标题】:Python - connect to hive using PyodbcPython - 使用 Pyodbc 连接到配置单元
【发布时间】:2020-06-26 21:14:29
【问题描述】:

我正在尝试使用 PyODBC 连接到 hive 服务器,但是我收到了错误。不知道如何解决。

HiveServer 正在 EMR 上运行。

代码

import pyodbc
cnxnstr = 'Driver={/usr/lib/hive/lib/native/Linux-amd64-64/libhortonworkshiveodbc64.so};' \
          'HiveServerType=2;' \
          'Host=10.164.7.50;' \
          'Port=10001;TransportMode=HTTP;' \
          'UID=gshah03;' \
          'AuthMech=3;' \
          'ThriftTransport=SASL;' \
          'Schema=my_database;' \
           'PWD=mypass$'
cnxn = pyodbc.connect(cnxnstr, autocommit=True)

错误

Error: ('HY000', '[HY000] [unixODBC][Hortonworks][ThriftExtension] (5) Error occurred while contacting server: invalid sasl status. This could be because you are trying to establish a non-SSL connection to a SSL-enabled server. (5) (SQLDriverConnect)')

我也尝试添加此选项,但不起作用'sslverify=0; Option=3;'

Hive-Site.xml

<property>
    <name>hive.server2.enable.doAs</name>
    <value>false</value>
  </property>
  <property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
  </property>
  <property>
    <name>hive.server2.thrift.http.port</name>
    <value>10001</value>
  </property>

更新:

使用10000 端口,我收到以下错误:

错误

Error: ('HY000', '[HY000] [unixODBC][Hortonworks][Hardy] (34) Error from server: connect() failed: Connection refused. (34) (SQLDriverConnect)')

【问题讨论】:

  • 为什么不pysparkimpylapyhive
  • pyhive 不支持 sasl。 PySpark 我可以访问,但是在转换为 pandas 数据框时我遇到了问题。 stackoverflow.com/questions/62556754/…
  • 那里给出的答案是正确的。
  • 它不工作
  • 还有。当人们只想使用 Python notebook 获取数据时,有些用例..

标签: python hive pyodbc


【解决方案1】:
  1. 在用户 DSN 下创建 odbc 驱动程序 dsn(通过 ODBC 数据源管理员 64 位导航)。
  2. 单击添加(为 Apache Hive 选择 cloudera ODBC 驱动程序,如果不存在,请从 cloudera 站点下载最新的驱动程序) 3.Server/Hosts:您的服务器名称 DSN名称和描述:您可以根据您的意愿给您 端口:端口号 身份验证:用户名和密码 传输:HTTP HTTP 路径:HTTP 路径(在 HTTP 选项中) 需要 SSL:选择 cacerts.pem(它存在于 clouder odbc 驱动程序文件夹-lib 中)并检查自签名服务器证书 - 单击确定
  3. 点击测试按钮,应该会看到连接成功

创建 dsn 后,使用 pyodbc 在 python 中使用该 dsn 并建立连接。使用此连接,您可以查询出您的蜂巢标签。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-26
    相关资源
    最近更新 更多