Kerberos下pyhive使用

在使用DataEngine大数据平台时,一般集群都是不联网的,使用pyhive时99%工作都是在安装相关的python依赖包,并且不同环境上缺少的依赖python包也不太一样,本篇文章是在DataEngine大数据集群内或客户端上安装pyhive,使用python版本为2.7。

本篇文章介绍下如何在离线情况下安装pyhive。

安装依赖包

在安装Pyhiv前需要先安装如下依赖:

分别对安装包进行解压,执行python setup.py install 进行安装,安装顺序如下:

  1. future-0.18.2.tar.gz
  2. six-1.16.0.tar.gz
  3. setuptools_scm-1.15.0.tar.gz
  4. python-dateutil-2.8.0.tar.gz
  5. PyHive-0.6.4.tar.gz
  6. thrift-0.13.0.tar.gz
  7. sasl-0.3.1.tar.gz
  8. pure-sasl-0.6.2.tar.gz
  9. thrift_sasl-0.4.3.tar.gz

 这些包已经为大家准备好,可以直接在网盘下载,下载链接:

链接: https://pan.baidu.com/s/1XFozZU1t5WFgie2HUA-SKA 提取码: fmmi 复制这段内容后打开百度网盘手机App,操作更方便哦

如果安装过程中还提示缺失其他包,那么需要在pypi:PyPI · The Python Package Index 自行下载:

 

执行pyhive测试程序

准备pyhive测试代码,当前环境为开启kerberos,需要在代码中先执行认证命令,并将keytab替换为自己认证文件和目录:

import os
from pyhive import hive

from TCLIService.ttypes import TOperationState #此地方可以忽略,为了获取执行结果状态

#先进行kerberos认证,keytab及存放路径和principal修改为具体值
os.system('kinit -kt {}/hadoop.keytab {}'.format('/opt/pyhive/','hadoop'))
# 打开hive连接,需要启动hiveserver2,修改host为集群hiveserver名
hiveConn = hive.connect(host='node1',port=10000,auth='KERBEROS',kerberos_service_name='hive')

cursor = hiveConn.cursor()

# 执行sql语句

cursor.execute('create table if not exists test(id int, name string)', async=False)

cursor.execute('insert into test values(1111, "aaaa")', async=False)

cursor.execute('select * from test', async=True)


# 得到执行语句的状态

status = cursor.poll().operationState

print "status:",status

# 打印结果

#print cursor.fetchall()

#print cursor.fetchall()

for result in cursor.fetchall():
    print "aaaaa"*20
    print result

print "end**" *10

# 关闭hive连接

cursor.close()

hiveConn.close()

执行python testhive.py:

安装过程问题汇总:

1.  可能出现can not find setuptools 或者 Requirement.parse('setuptools>=20.5' )异常

 删除python目录下旧版本setup,rm -rf /usr/lib/python2.7/site-packages/setuptools然后安装新版本setup:

unzip setuptools-41.6.0.zip

cd setuptools-41.6.0

python setup.py install

2. 找不到python.h文件

  原因一般是python安装存在问题,重新安装python-devel即可:
yum install python-devel

 3. 执行testhive.py文件时出现 no mechanism available: No worthy mechs found

这种一般由于sasl安装存在问题,可以安装cyrus解决:

rpm -ivh cyrus-sasl-2.1.26-23.el7.i686.rpm
rpm -ivh cyrus-sasl-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-devel-2.1.26-23.el7.i686.rpm
rpm -ivh cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-gssapi-2.1.26-23.el7.i686.rpm
rpm -ivh cyrus-sasl-gssapi-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-lib-2.1.26-23.el7.i686.rpm
rpm -ivh cyrus-sasl-lib-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-plain-2.1.26-23.el7.i686.rpm
rpm -ivh cyrus-sasl-plain-2.1.26-23.el7.x86_64.rpm
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值