A Python example for HiveServer2
要做一个通过调用python来实现对hive server2 的连接。在网上搜索了很多资料,有些说的hive sever的,但是由于认证方式发生改变,行不通。
最后,找到了权威的说明(PS: 还是应该先看官方材料):
https://cwiki.apache.org/confluence/display/Hive/Setting+up+HiveServer2#SettingUpHiveServer2-PythonClientDriver
所以在这里结合自己的使用,主要还是给大家翻译和引用一下:
A Python client driver for HiveServer2 is available at https://github.com/BradRuderman/pyhs2 (thanks, Brad). It includes all the required packages such as SASL and Thrift wrappers.
The driver has been certified for use with Python 2.6 and newer.
To use the pyhs2 driver:
pip install pyhs2
通过Python 连接HiveServer2的类可以从github上下载,下载地址:https://github.com/BradRuderman/pyhs2 。其中包含了pyhs2类中使用到的其他的类,比如SASL 和Thrift wrappers。可以手动下载后放在目录下,添加到sys.path中。
随后给出来一个simple example:
import pyhs2
with pyhs2.connect(host='localhost',
port=10000,
authMechanism="PLAIN",
user='root',
password='test',
database='default') as conn:
with conn.cursor() as cur:
#Show databases
print cur.getDatabases()
#Execute query
cur.execute("select * from table")
#Return column info from query
print cur.getSchema() #Fetch table results
for i in cur.fetch():
print i
调试的过程中基本没有遇到什么大问题:
1. 因以前的sys.path路径下有老的pyhs2的类库,会提示说缺少sasl的类库,将旧的pyhs2打包备份后,会自动指向新的pyhs2的类库,这个问题就解决了。
2. 抛出异常的地方,我使用 try... except Thrift.TException, tx:的方式,能正常地抛出sql的异常。
如果有疑问,欢迎回复讨论。
最后提供了一个邮件列表,供技术讨论:
You can discuss this driver on the user@hive.apache.org mailing list.
A Python example for HiveServer2的更多相关文章
- [Hive]HiveServer2配置
HiveServer2(HS2)是一个服务器接口,能使远程客户端执行Hive查询,并且可以检索结果.HiveServer2是HiveServer1的改进版,HiveServer1已经被废弃.HiveS ...
- python-操作hive
python访问hive2 HiveServer2为客户端在远程执行hive查询提供了接口,通过Thrift RPC来实现,还提供了多用户并发和认证功能.目前使用python的用户可以通过pyhs2这 ...
- python连接hiveserver2
sudo pip install pyhs2 网上找的例子: #!/usr/bin/env python # -*- coding: utf-8 -*- # hive util with hive s ...
- python 连接 hive 的 HiveServer2 的配置坑
环境: hadoop 2.7.6 hive 2.3.4 Hive 的 thirft 启动: hadoop 单机或者集群需要: 启动 webhdfs 修改 hadoop 的代理用户 <proper ...
- Python HiveServer2
1. 安装pyhs2 pyhs2依赖项如下: gcc-c++ python-devel.x86_64 cyrus-sasl-devel.x86_64 因此pyhs2的安装命令如下: ...
- Python3 impyla 连接 hiveserver2
简介: 接到一个任务,需要从 hive 中读取数据,生成报表. 于是找到了官方文档:https://cwiki.apache.org/confluence/display/Hive/Setting+U ...
- Hadoop Hive概念学习系列之hive三种方式区别和搭建、HiveServer2环境搭建、HWI环境搭建和beeline环境搭建(五)
说在前面的话 以下三种情况,最好是在3台集群里做,比如,master.slave1.slave2的master和slave1都安装了hive,将master作为服务端,将slave1作为服务端. 以 ...
- Python扫描器-端口扫描
结合渗透测试最常见就是单个域名扫指纹,自动子域名查找.获取所有子域名的IP,自动C段IP查找相同子域名,利用有效IP扫端口. 常见端口库扫描 service_list = { 21:"FTP ...
- Hive 教程(九)-python with hive
本文介绍用 python 远程连接 hive,此时需要 hive 启动 hiveserver2 服务 windows 下报如下错误 thrift.transport.TTransport.TTrans ...
随机推荐
- The Java library for converting Wikipedia wikitext notation to HTML
https://code.google.com/p/gwtwiki/ The Java Wikipedia API (Bliki engine) is a parser library for con ...
- [bzoj3489]A simple rmq problem_KD-Tree
A simple rmq problem 题目大意:给定一个长度为$n$的序列,给出$m$个询问:在$[l,r]$之间找到一个在这个区间里只出现过一次的最大的数. 注释:$1\le n\le 10^5 ...
- [bzoj3306]树_dfs序_线段树_倍增lca
树 bzoj-3306 题目大意:给定一颗n个节点的树,支持换根.修改点权.查询子树最小值. 注释:$1\le n,q\le 10^5$. 想法: 如果没有换根操作,就是$dfs$序+线段树维护区间最 ...
- CLR运行机制
CLR编译器会将我们的代码编译成托管模块(中间IL语言和元数据),托管模块是一个标准的PE32执行文件,或者PE32+执行文件.但是CLR实际不和托管模块一起工作,他会将托管模块合并成程序集,程序集是 ...
- Redis官方文档资源
官方文档: 如果要深入研究时,官方提供的文档是最权威的. 英文: https://redis.io/documentation 中文: http://www.redis.cn/documentatio ...
- ovs ml2
用openvswitch + ml2 构建vlan类型的tenant/project 网络 配置ml2 和 openvswitch_agent 配置 /etc/neutron/plugins/ml2/ ...
- springboot application.properties
verify if you have this items: @Bean public CommonsMultipartResolver multipartResolver() { CommonsMu ...
- iPhone 3gs 5.0.1降級到4.3.3 昨晚搞定(有shsh備份)
經過昨天白天一天的學習和準備,終於一次降級成功. 手機未降級時狀態: 無鎖港版 3GS 16G 固件:5.0.1 基帶:05.16.05 記錄且分享降級完整步驟: 準備以下軟件.工具 官網固件 ...
- jQuery的DOM操作之捕获和设置
.html()--获取或设置目标元素内的全部内容,包括html的标签及属性在内: .text()--仅获取或设置目标元素内的文本内容. .val()--获取输入框的值: .attr()--获取或设置目 ...
- UVa 1531 - Problem Bee
题目:如图所看到的的蜂巢型的图中.蜜蜂想从A点飞到B点,假设A与B不在同一个正六边形中, 则它先飞到A的中心.每次飞到相邻格子的中心,最后飞到B的中心,再飞到B点: 假设在一个格子中.直接飞过去就可以 ...