华为云MRS Python3使用pyhive连接安全集群Hive
1 环境准备
安装MRS客户端
安装python3.6
2 安装依赖包
系统模块安装:
yum install cyrus-sasl-devel.x86_64(鲲鹏系统:yum install cyrus-sasl-devel)
yum install gcc
Python包安装:
pip install future==0.16.0
pip install python-dateutil==2.7.3
pip install sasl==0.2.1
pip install thrift==0.11.0
pip install thrift_sasl==0.3.0
3 下载和安装pyhive包(见附件)
pip install PyHive-0.6.1.1.zip
该包已基于MRS kerberos认证进行了相应的源码修改。
修改了pyhive/hive.py文件,在文件两处增加kerberos_service_host参数配置,kerberos认证时需要接收kerberos_service_host参数。
4 示例代码
Python 代码
import os from pyhive import hive
host="xx.xx.xx.xx" # hive host,可以执行beeline查看 port=10000 # 端口,默认为10000 auth="KERBEROS" # 认证方式为kerberos kerberos_service_name="hive" # 默认为为hive,可以再hive_site.xml里面查看 kerberos_service_host='hadoop.hadoop.com' # 默认为hadoop.hadoop.com,可以再hive_site.xml里面查看
os.system('source /FusionInsight/client/bigdata_env') os.system('kinit username -k -t /keytab/user.keytab')
with hive.connect(host=host, port=port, auth=auth, kerberos_service_host=kerberos_service_host, kerberos_service_name=kerberos_service_name,maxbufsize=32*1024*1024) as conn: with conn.cursor() as cur: cur.execute("show tables") for i in cur.fetchall(): print(i) |
- 点赞
- 收藏
- 关注作者
评论(0)