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 错误

  • 相关阅读:
    浅谈Java两种并发类型——计算密集型与IO密集型
    设置线程池的大小
    Java 四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecuto
    gitlab的简单操作
    GitHub vs GitLab:区别?
    前端小知识汇总
    花里胡哨的CSS集锦
    码云如何上传代码
    小程序自定义底部导航
    Vue实践过程中的几个问题
  • 原文地址:https://www.cnblogs.com/stone1989/p/12698389.html
Copyright © 2011-2022 走看看