更新时间:2024-06-27 GMT+08:00
基于Python3的Hive样例程序
功能介绍
本章节介绍如何使用Python3连接Hive执行数据分析任务。
样例代码
安全模式连接Hive前需要使用集群客户端进行认证,使用kinit命令认证相应权限的Kerberos用户,认证后执行分析任务示例在“hive-examples/python3-examples/pyCLI_sec.py”文件中。
- 导入hive类
from pyhive import hive
- 创建JDBC连接。
connection = hive.Connection(host='hiveserverIp', port=hiveserverPort, username='hive', database='default', auth='KERBEROS', kerberos_service_name="hive", krbhost='hadoop.hadoop.com')
需按照实际环境修改以下参数:
- hiveserverIp:替换为实际需要连接的HiveServer节点IP地址,可登录FusionInsight Manager,选择“集群 > 服务 > Hive > 实例”查看。
- hiveserverPort:需要替换为Hive服务的端口,可在FusionInsight Manager界面,选择“集群 > 服务 > Hive > 配置”,在搜索框中搜索“hive.server2.thrift.port”查看,默认值为“10000”。
- username:参数值为实际使用的用户名,即准备集群认证用户信息创建的用户名。
- kerberos_service_name:参数值为实际连接的实例,以连接Hive为例,修改为:kerberos_service_name="hive"。
- krbhost:参数值为“hadoop.实际域名”,实际域名可登录FusionInsight Manager,选择“系统 > 权限 > 域和互信 > 本端域” 查看。
- 执行SQL语句,样例代码中仅执行查询所有表功能,可根据实际情况修改HQL内容。
cursor = connection.cursor() cursor.execute('show tables')
- 获取结果并输出
for result in cursor.fetchall(): print(result)
父主题: 开发Hive应用