zoukankan      html  css  js  c++  java
  • python2和python3使用pyhive

    ModuleNotFoundError: No module named 'cloudera'

    背景:
    python3使用pyhs2连接hiveserver2

    解决方法:

    1、使用python2
    2、python3 环境使用pyhive

    1、python3 使用pyhive

    sudo yum install cyrus-sasl-devel -y
    sudo yum install gcc-c++  -y
    pip3 install sasl
    pip3 install thrift
    pip3 install thrift-sasl
    pip3 install pyhive
    

    2、连接hive查询数据

    # -*- coding: utf-8 -*-
    from pyhive import hive
    
    conn = hive.Connection(host='192.168.1.72', port=10000, username='root', database='testdalu',auth="CUSTOM")#host主机ip,port:端口号,username:用户名,database:使用的数据库名称,auth:使用账户密码连接。
    cursor=conn.cursor()
    cursor.execute('select * from t_t1')#执行查询
    for result in cursor.fetchall():
         print(result)                      #将查询结果打印出来
    conn.close()
    

    3、问题记录

    3.1、Password should be set if and only if in LDAP or CUSTOM mode;

    配置auth="CUSTOM"
    

    3.2、thrift.transport.TTransport.TTransportException: Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found

    解决办法:

    yum install cyrus-sasl-plain  cyrus-sasl-devel  cyrus-sasl-gssapi -y
    

    3.3、ImportError: cannot import name TFrozenDict

    python2 使用pyhive

    yum install -y gcc libffi-devel python-devel openssl-devel gcc-c++ cyrus-sasl-plain  cyrus-sasl-devel  cyrus-sasl-gssapi
    
    pip install pyhive[hive]
    

    注意这里要加上[hive]后缀,否则有些关联的包装不上,会导致报错,我就遇到如下报错信息:

    ImportError: cannot import name TFrozenDict 错误

  • 相关阅读:
    docker命令总结
    VulToEs
    MYSQL
    MoonStack
    Spring mvc json null
    MySQL
    极光推送
    坑爹的RockSaw和坑爹的windows7
    App接口设计思路
    CSUOJ 1329 一行盒子(数组模拟链表)
  • 原文地址:https://www.cnblogs.com/stone1989/p/12698389.html
Copyright © 2011-2022 走看看