python连接hive,怎么安装thrifthive

hive.server2.thrift.bind.host:TCP接口的绑定主机。hive.server2.authentication:身份验证方式。默认为NONE(使用 plain SASL),即不进行验证检查。可选项还有NOSASL, KERBEROS, LDAP, PAM and CUSTOM.hive.server2.enable.doAs:是否以模拟身份执行查询处理。默认为true。Python客户端连接HiveServer2 py...
python连接hive,怎么安装thrifthive
HiveServer2的启动
启动HiveServer2
HiveServer2的启动十分简便:
$ $HIVE_HOME/bin/hiveserver2
或者
$ $HIVE_HOME/bin/hive --service hiveserver2
默认情况下,HiverServer2的Thrift监听端口是10000,其WEB UI端口是10002。可通过http://localhost:10002来查看HiveServer2的Web UI界面,这里显示了Hive的一些基本信息。如果Web界面不能查看,则说明HiveServer2没有成功运行。
使用beeline测试客户端连接
HiveServer2成功运行后,我们可以使用Hive提供的客户端工具beeline连接HiveServer2。
$ $HIVE_HOME/bin/beeline
beeline > !connect jdbc:hive2://localhost:10000
如果成功登录将出现如下的命令提示符,此时可以编写HQL语句。
0: jdbc:hive2://localhost:10000>
报错:User: xxx is not allowed to impersonate anonymous
在beeline使用!connect连接HiveServer2时可能会出现如下错误信息:
Caused by: org.apache.hadoop.ipc.RemoteException:User: xxx is not allowed to impersonate anonymous
这里的xxx是我的操作系统用户名称。这个问题的解决方法是在hadoop的core-size.xml文件中添加xxx用户代理配置:
<property><name>hadoop.proxyuser.xxx.groups</name><value>*</value></property><property><name>hadoop.proxyuser.xxx.hosts</name><value>*</value></property>
重启HDFS后,再用beeline连接HiveServer2即可成功连接。
常用配置
HiveServer2的配置可以参考官方文档《Setting Up HiveServer2》
这里列举一些hive-site.xml的常用配置:
hive.server2.thrift.port:监听的TCP端口号。默认为10000。
hive.server2.thrift.bind.host:TCP接口的绑定主机。
hive.server2.authentication:身份验证方式。默认为NONE(使用 plain SASL),即不进行验证检查。可选项还有NOSASL, KERBEROS, LDAP, PAM and CUSTOM.
hive.server2.enable.doAs:是否以模拟身份执行查询处理。默认为true。
Python客户端连接HiveServer2
python中用于连接HiveServer2的客户端有3个:pyhs2,pyhive,impyla。官网的示例采用的是pyhs2,但pyhs2的官网已声明不再提供支持,建议使用impyla和pyhive。我们这里使用的是impyla。
impyla的安装
impyla必须的依赖包括:
six
bit_array
thriftpy(python2.x则是thrift)
为了支持Hive还需要以下两个包:
sasl
thrift_sasl
可在Python PI中下载impyla及其依赖包的源码。
impyla示例
以下是使用impyla连接HiveServer2的示例:
from impala.dbapi import connectconn = connect(host='127.0.0.1', port=10000, database='default', auth_mechanism='PLAIN')cur = conn.cursor()cur.execute('SHOW DATABASES')print(cur.fetchall())cur.execute('SHOW Tables')print(cur.fetchall())2017-11-06
mengvlog 阅读 11 次 更新于 2025-07-19 07:41:06 我来答关注问题0
  • 为了连接Hive数据库,可以利用Python中的PyHive库。首先,通过pip命令在终端中安装PyHive库。连接过程涉及三个重要步骤。首先,导入PyHive库中的三个模块。然后,使用特定命令建立与Hive服务器的连接,这里需要替换主机名、端口号、用户名、密码以及数据库名称。接下来,使用Pandas库的read_sql()函数在Python...

  • 最常见的方法是将Hive根目录下的$HIVE_HOME/lib/py文件复制到Python的库文件夹,即site-package目录中,或者直接将新编写的Python代码与复制的py库放在同一目录下,然后利用该目录提供的thrift接口进行调用。示例代码相对简单,通常只需几行代码即可实现连接。以Python 2.7为例,首先需要安装Thrift库,可以...

  •  文暄生活科普 python中的hive代码小tips1-使用 PyHive 库连接 Hive 并执行 SQL 语句的基本操作

    使用 PyHive 在 Python 中创建一个以 TEXTFILE 格式存储的表。需要替换your_hive_host、your_username 和 your_table 为你实际值。表有三个列,分别为 column1、column2 和 column3,数据类型分别为 INT、STRING 和 FLOAT。ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 表示字段之间用逗号分隔,S...

  •  翡希信息咨询 python与hive

    Hive自带的库:Python可以通过Hive自带的库来访问Hive,但这种方式可能需要配置和安装额外的依赖。pyhive模块:pyhive是一个Python库,提供了访问Hive的接口。使用pyhive可以更方便地在Python程序中执行Hive SQL语句、读取数据等。pyhive中的关键API:执行SQL:cursor.execute:允许通过params参数执行SQL操作,p...

  • hive.server2.thrift.bind.host:TCP接口的绑定主机。hive.server2.authentication:身份验证方式。默认为NONE(使用 plain SASL),即不进行验证检查。可选项还有NOSASL, KERBEROS, LDAP, PAM and CUSTOM.hive.server2.enable.doAs:是否以模拟身份执行查询处理。默认为true。Python客户端连接HiveServer2 py...

檬味博客在线解答立即免费咨询

Python相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部