python 连接hiveserver2的pyhs2模块安装

1. 背景:

        银行的数据ETL需要使用python连接hive,提交一些SQL执行,需要安装python连接hive的包,经过调研,目前可用的包有如下三个:

  • pyhs2,
  • pyhive,
  • impyla

        其中pyhs2开发较早,目前不怎么维护了,但是由于之前的代码里面用的pyhs2,所以这次安装pyhs2,可以复用以前的代码。

        因为银行的数据服务器都是与外界网络隔离的,所以只能通过之前买的一个云服务器下载好需要安装的包,然后使用u盘传入内网进行安装,本次安装过程分两个部分:

  1. 操作可以联网的云服务器下载包。
  2. 在内网安装。

2. 下载与安装

云服务器连接外网下载安装包:

​
#1.配置案例云yum源:

#进入配置目录

cd /etc/yum.repos.d/

#移除原来的yum源

mv CentOS-Base.repo CentOS-Base.repo.bak

#替换为阿里云 yum源

wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

#重新加载yum源:

yum clean all

yum makecache

#2.在线安装缺少的包后测试成功:

yum install -y gcc gcc-c++ libffi-devel python-devel openssl-devel cyrus-sasl cyrus-sasl-devel cyrus-sasl-lib

pip install --no-index --find-links=pyhs2_packages pyhs2

#3.yum下载需要的包

yumdownloader gcc gcc-c++ libffi-devel python-devel openssl-devel cyrus-sasl cyrus-sasl-devel cyrus-sasl-lib

#4.pip下载需要的包

pip download pyhs2 -d pyhs2_packages -i Simple Index --trusted-host pypi.tuna.tsinghua.edu.cn


​

内网安装pyhs2和相关的依赖:

#安装相关的依赖

yum -y install gcc-c++

yum -y install python-devel

yum -y install cyrus-sasl-lib

yum -y install cyrus-sasl-devel

yum -y install cyrus-sasl

yum -y install cyrus-sasl-plain

yum install saslwrapper-devel

#安装python的pyhs2 包

python2.7 -m pip install --no-index --find-links=pyhs2_packages pyhs2

其中pyhs2_package文件夹内是pyhs2的安装包和依赖,内容如下

pyhs2-0.6.0.tar.gz

sasl-0.3.1.tar.gz

six-1.16.0-py2.py3-none-any.whl

thrift-0.16.0.tar.gz

3. 问题总结:

pip install --no-index --find-links=pyhs2_packages pyhs2

执行的时候报错

error:Python.h No such file or directory #include "Python.h"

查询发现原因是没有对应的python-devel,但是实际上已经安装过该包。

后来使用pip -V查询,发现这个pip 绑定的是pip3 ,python3没有python3-devel

后来使用yum -y install python3-devel ,再重新执行,执行成功。

在python3里面执行,import pyhs2 执行成功

python3 成功安装了pyhs2

然后yum -y install python-pip2 为python2.7 安装了pip :

使用python2.7 -m pip 或者pip2 ,指定python2.7的pip 执行安装pyhs2,安装成功了:

python2.7 -m pip install --no-index --find-links=pyhs2_packages pyhs2

本来一直纳闷,同样的一批包,有的机器一次性执行成功了,有的直接报错,感觉非常的郁闷。现在终于找到原因了,安装之前一定先检查一下pip 是对应的python版本

pip -V 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值