0039-如何使用Python Impyla客户端连接Hive和Impala

本文介绍了如何在CDH集群环境中使用Python Impyla客户端连接HiveServer2和Impala Daemon,进行SQL操作。内容包括依赖包安装、代码编写和测试,提供了连接Hive和Impala的Python示例代码。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

1.文档编写目的


继上一章讲述如何在CDH集群安装Anaconda&搭建Python私有源后,本章节主要讲述如何使用Pyton Impyla客户端连接CDH集群的HiveServer2和Impala Daemon,并进行SQL操作。

  • 内容概述

1.依赖包安装

2.代码编写

3.代码测试

  • 测试环境

1.CM和CDH版本为5.11.2

2.RedHat7.2

  • 前置条件

1.CDH集群环境正常运行

2.Anaconda已安装并配置环境变量

3.pip工具能够正常安装Python包

4.Python版本2.6+ or 3.3+

5.非安全集群环境

2.Impyla依赖包安装


Impyla所依赖的Python包

  • six
  • bit_array
  • thrift (on Python 2.x) orthriftpy (on Python 3.x)
  • thrift_sasl
  • sasl

1.首先安装Impyla依赖的Python包

[root@ip-172-31-22-86 ~]# pip install bit_array
[root@ip-172-31-22-86 ~]# pip install thrift==0.9.3
[root@ip-172-31-22-86 ~]# pip install six
[root@ip-172-31-22-86 ~]# pip install thrift_sasl
[root@ip-172-31-22-86 ~]# pip install sasl

注意:thrift的版本必须使用0.9.3,默认安装的为0.10.0版本,需要卸载后重新安装0.9.3版本,卸载命令pip uninstall thrift

2.安装Impyla包

impyla版本,默认安装的是0.14.0,需要将卸载后安装0.13.8版本

 [root@ip-172-31-22-86 ec2-user]# pip install impyla==0.13.8
Collecting impyla
  Downloading impyla-0.14.0.tar.gz (151kB)
    100% |█████
Python连接Hive Web通常可以借助一些Python客户端库来实现,以下是几种常见的方法: #### 使用`pyhive`库 `pyhive`是一个用于连接HiveServer2的Python客户端库。以下是使用`pyhive`连接Hive Web的示例代码: ```python from pyhive import hive # 创建hive连接 conn = hive.Connection( host='your_hive_host', # HiveServer2主机的IP地址 port=10000, # HiveServer2服务端口号 username='your_username', # 连接hive数据库的用户名 database='your_database', # 具体数据库名 auth='NOSASL' # 客户端的认证模式 ) cur = conn.cursor() sql = "show tables" cur.execute(sql) results = cur.fetchall() print(results) ``` 在上述代码中,需要将`your_hive_host`、`your_username`、`your_database`替换为实际的Hive服务器地址、用户名数据库名。`auth`参数可根据实际的认证需求进行调整,如`CUSTOM`、`LDAP`等 [^1][^2]。 #### 使用`impyla`库 `impyla`也是一个可以用于连接HivePython库。示例代码如下: ```python from impala.dbapi import connect # 建立连接 conn = connect( host='your_hive_host', port=21050, # Impala服务端口号 database='your_database', user='your_username', password='your_password', auth_mechanism='PLAIN' ) cur = conn.cursor() cur.execute('SHOW TABLES') tables = cur.fetchall() print(tables) ``` 同样,需要将`your_hive_host`、`your_username`、`your_database`、`your_password`替换为实际的值。`auth_mechanism`参数可根据实际情况修改 [^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值