华为云MRS Python3使用pyhive连接安全集群Hive

举报
yugogo 发表于 2021/12/01 12:39:12 2021/12/01
【摘要】 华为云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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。