python连接hive配置

Impyla连接Hive教程

1.依赖包

PACKAGEVERSION
python3.5
six1.10.0
thriftpy0.3.9
thrift-sasl0.2.1(不能用最新版本)
bitarray0.8.3
Impyla0.14.1
thrift0.9.3
pure-sasl0.5.1

2.修改源文件

2.1 修改Anaconda3\Lib\site-packages\thriftpy\parser\parser.py文件

在这里插入图片描述

2.2 修改Anaconda3\Lib\site-packages\thrift_sasl\__init__.py

在这里插入图片描述

3.注意事项

(1)创建连接时,auth_mechanism='PLAIN’必须添加,否则会出现如下错误:
在这里插入图片描述
(2)Linux 解决 thrift_sasl 安装失败问题
在这里插入图片描述
使用命令安装如下依赖包:
yum install gcc-c++ python-devel.x86_64 cyrus-sasl-devel.x86_64

4. DEMO

在这里插入图片描述

效果如下:
在这里插入图片描述

### 3.1 Python连接Hive的常用库 在Python连接Hive进行数据查询和分析,通常使用以下库和模块: #### pyhive `pyhive` 是一个常用的Python库,用于连接Hive Thrift服务并执行SQL查询。它支持HiveServer2协议,并能与Pandas等数据分析库结合使用,实现高效的数据处理。 示例代码如下: ```python from pyhive import hive # 创建Hive连接 conn = hive.Connection( host='xxx.xxx.xx.xxx', # HiveServer2的IP地址 port=10000, # HiveServer2的服务端口号 username='your_user', # 登录用户名 database='default' # 数据库名称 ) # 创建游标并执行查询 cursor = conn.cursor() cursor.execute("SELECT * FROM your_table LIMIT 10") # 获取查询结果 results = cursor.fetchall() print(results) # 关闭连接 cursor.close() conn.close() ``` 该库在连接时可能需要依赖 `thrift` 和 `sasl` 等底层库,某些环境中还需安装Visual C++ Build Tools以支持编译依赖项[^4]。 #### hive 另一个常用的库是 `hive` 模块,它同样支持通过Thrift协议连接Hive服务。该模块提供了 `connect` 方法,允许设置主机、端口、认证方式等参数。 示例代码如下: ```python from hive import connect # 建立连接 conn = connect( host="server_ip", port=10000, auth="NOSASL", # 认证模式 database="default", username="your_user", password="your_password" ) # 执行查询 cursor = conn.cursor() cursor.execute("SHOW TABLES") results = cursor.fetchall() print(results) # 关闭连接 cursor.close() conn.close() ``` 此方法在实际使用中与 `pyhive` 类似,但可能在配置和依赖管理上有所不同[^3]。 #### pandas 为了更方便地处理查询结果,通常会结合 `pandas` 库将查询结果转换为DataFrame格式,便于后续的数据分析和可视化。 示例代码如下: ```python import pandas as pd from pyhive import hive # 建立连接 conn = hive.Connection(host="xxx.xxx.xx.xxx", port=10000, username="your_user") # 执行查询 cursor = conn.cursor() cursor.execute("SELECT * FROM your_table WHERE some_column > 100") # 将结果保存为DataFrame df = pd.DataFrame(cursor.fetchall(), columns=[desc[0] for desc in cursor.description]) print(df) # 关闭连接 cursor.close() conn.close() ``` 该方法利用 `pandas` 的能力,将Hive查询结果快速转换为结构化数据形式,便于后续处理[^4]。 --- ### 3.2 连接配置与认证方式 在使用上述库连接Hive时,需根据HiveServer2的配置设置认证方式。常见的认证模式包括 `NOSASL`、`LDAP` 和 `KERBEROS` 等。若Hive服务启用了Kerberos认证,则需额外配置Kerberos客户端环境。 例如,使用 `pyhive` 连接启用了Kerberos认证的Hive服务: ```python from pyhive import hive conn = hive.Connection( host='hive-server-host', port=10000, username='your_user', auth='KERBEROS', kerberos_service_name='hive' ) ``` 这种配置方式适用于企业级Hadoop集群,确保连接的安全性和权限控制[^1]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值