• 【大数据】windows 下python3连接hive


    注意:impyla 既可以连接impala, 也可以连接hive

    环境 : windows10

    python版本:3.6

    hive版本:1.1 

    亲测可用!

    impyla安装过程

    安装依赖

    pip install bit_array

    pip install thrift

    pip install thriftpy

    pip install pure_sasl

    pip install --no-deps thrift-sasl==0.2.1

    安装impyla

    pip install impyla

    连接Hive

    # -*-coding:utf-8 -*-
    from impala.dbapi import connect
    conn = connect(host='ip', port=port, database='default', user='user_name', password='password', auth_mechanism="PLAIN")
    cur = conn.cursor()
    cur.execute('show tables')
    print(cur.fetchall())

    注意事项

    1.重点不要安装sasl,否则会提示报错

    卸载方式:pip uninstall sasl

    2.在安装过程中,如果出现包安装失败的情况,可以下载whl包进行安装,下载链接:https://www.lfd.uci.edu/~gohlke/pythonlibs/

    安装方式:pip install 包的绝对路径

    3.如果在安装过程中,出现任何包安装失败的问题,可以先将之前所有安装过的包统统卸载,再按顺序依次安装一次

    问题集锦

    impyla (0.14.0) ERROR - 'TSocket' object has no attribute 'isOpen'

    这个问题的原因是thrift-sasl版本过高导致的,将其换成0.2.1的版本即可

    pip install thrift-sasl==0.2.1

    thriftpy2.protocol.exc.TProtocolException: TProtocolException(type=4)

    这是由于auth_mechanism设置的问题导致的,加上或将其改为auth_mechanism="PLAIN"即可

    TypeError: can’t concat str to bytes

    修改 thrift-sasl init.py,在第94行之前加上以下语句即可:

    if (type(body) is str):
        body = body.encode()

    thrift.transport.TTransport.TTransportException: Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: Unable to find a callback: 2'

    这是Windows下采用pyhive连接方式提出的错误,正如前言所述,可能需要修改对应的配置文件,也可能sasl根本就不支持Windows,建议改用impyla形式连接

    thriftpy.parser.exc.ThriftParserError: ThriftPy does not support generating module with path in protocol 'c'

    修改thriftpy包下parserparser.py"中第488行代码,将"if url_scheme == '':" 修改为"if len(url_scheme) <=1:"即可

    转载自 https://www.aitolearn.com/article/9a06a8e1ff5e4252aa2373eb3cc4fed8

  • 相关阅读:
    Java中的魔法类-Unsafe
    Caffeine Cache-高性能Java本地缓存组件
    mysql之innodb日志管理
    mysql之innodb存储引擎---BTREE索引实现
    myslq5.7安装以及root密码找回
    mysql之innodb存储引擎---数据存储结构
    mysql之innodb存储引擎介绍
    java字符串详解
    hadoop2.7作业提交详解之文件分片
    hadoop2.7之作业提交详解(下)
  • 原文地址:https://www.cnblogs.com/TurboWay/p/12975034.html
Copyright © 2020-2023  润新知