使用python3连接hiveserver2的方法

8 篇文章 0 订阅

前言:

需求:需要通过windows端的pycharm来操作hive。
于是就搜集资料寻找解决方案。
大概有三种方式:

  1. pyhs2 连接 hive,但是这个项目已经没有人维护了,弃用。
  2. Pyhive连接hive。
  3. imply连接hive。

协商后决定还是用imply。
以下是整个安装以及验证的过程:

1、启动HiveServer2

shell > cd /usr/local/apache-hive-2.3.1-bin

shell > nohup hiveserver2 1>/root/apps/hive-2.1.1/logs/hiveserver.log 2>/root/apps/hive-2.1.1/logs/hiveserver.err &(后台启动并将hivesever的日志导入对应的目录)

2、在Linux中安装impyla(前提是安装Python相关的环境、虚拟环境(可选))

# 安装依赖
shell > yum -y install gcc gcc-c++ cyrus-sasl-devel cyrus-sasl-plain

# 创建虚拟环境(linux下安装虚拟环境参考:)
shell > virtualenv --no-site-packages -p python3 venv

# 启用虚拟环境
shelll > source venv/bin/activate

#linux下python的安装教程见:
(venv) shell > python -V
Python 3.6.3

# 安装 impyla 及所需依赖包
(venv) shell > pip install ipython six bit_array thriftpy thrift_sasl==0.2.1 sasl impyla

(venv) shell > ipython

In [1]: from impala.dbapi import connect

In [2]: conn = connect(host="192.168.10.45", port=10000, database="logsdb", auth_mechanism="PLAIN")

In [3]: cur = conn.cursor()

In [4]: cur.execute("select count(*) from log_bftv_api")

In [5]: cur.fetchone()
Out[5]: (1379094425,)

In [6]: conn.close()

# 程序查出了 hive table log_bftv_api 中总共有 1379094425 条数据。你也可以到对应yarn的web界面去查看对应执行进度,或者在1中配置的日志文件中查看执行的过程。

# 其中,连接配置中 auth_mechanism 的值由 hive-site.xml 配置文件中 hive.server2.authentication 配置项指定,你需要到对应的hiveserver2节点的hive-site中添加如下配置:
<property>
  <name>hive.server2.authentication</name>
  <value>PLAIN</value>
</property>。

# PLAIN 代表不启用认证,也就是 hive.server2.authentication 的默认值:NONE。

转自:https://www.cnblogs.com/wangxiaoqiangs/p/7850953.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值