华为云MRS Python3使用pyhive连接安全集群Hive
【摘要】 华为云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) |
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)