赞
踩
HiveServer2 是一种可选的 Hive 内置服务,可以允许远程客户端使用不同编程语言向 Hive 提交请求并返回结果。
假设我们已经成功安装了 Hive,如果没有安装,请参考:Hive 一文读懂 。在启动 HiveServer2 之前,我们需要先进行一些配置:
配置项 | 默认值 | 说明 |
---|---|---|
hive.server2.transport.mode | binary | HiveServer2 的传输模式,binary或者http |
hive.server2.thrift.port | 10000 | HiveServer2 传输模式设置为 binary 时,Thrift 接口的端口号 |
hive.server2.thrift.http.port | 10001 | HiveServer2 传输模式设置为 http 时,Thrift 接口的端口号 |
hive.server2.thrift.bind.host | localhost | Thrift服务绑定的主机 |
hive.server2.thrift.min.worker.threads | 5 | Thrift最小工作线程数 |
hive.server2.thrift.max.worker.threads | 500 | Thrift最大工作线程数 |
hive.server2.authentication | NONE | 客户端认证类型,NONE、LDAP、KERBEROS、CUSTOM、PAM、NOSASL |
hive.server2.thrift.client.user | anonymous | Thrift 客户端用户名 |
hive.server2.thrift.client.password | anonymous | Thrift 客户端密码 |
方式一:$HIVE_HOME/bin/hiveserver2
- [root@Hadoop3-master bin]# hiveserver2
- 2023-08-16 23:14:00: Starting HiveServer2
- SLF4J: Class path contains multiple SLF4J bindings.
- SLF4J: Found binding in [jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
- SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.35.jar!/org/slf4j/impl/StaticLoggerBinder.class]
- SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
- SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
- Hive Session ID = 0ba8eb07-5f63-43a1-aa4d-61954f6e244f
方式二:$HIVE_HOME/bin/hive --service hiveserver2
netstat -nl | grep 10000
默认访问地址:http://192.168.43.11:10002/
效果截图:
依赖的第三方库包
- pip install sasl
- pip install thrift
- pip install thrift-sasl
- pip install PyHive
温馨提示:首先是pyhive的安装:pyhive这个包依 赖于sasl,thrift,thrift-sasl这三个包。
造成错误的原因是:
- saslwrapper.cpp
- C:\Users\zzg\AppData\Local\Temp\pip-install-1vw7hyr4\sasl_05859569d9c14648abbe3a8901ed3627\sasl\saslwrapper.h(22): fatal error C1083: 无法打开包括文件: “sasl/sasl.h”: No such file or directory
saslwrapper.cpp 文件中无法找到sasl/sasl.h 头文件。
通过加利福利亚大学的的镜像地址: https://www.lfd.uci.edu/~gohlke/pythonlibs/#sasl ,下载sasl.whl 文件。情况:现在的情况是网站已经被关闭。
通过清华大学的镜像地址:https://pypi.tuna.tsinghua.edu.cn/simple/sasl/ ,下载sasl.whl 文件。情况:没有Python-3.10 且支持windows 64 架构的库包。
温馨提示:清华的镜像地址提供关于sasl.whl 内容主要包含:
通过清华镜像下载Sasl 源码,解压后的效果截图:
切换至Sasl 源码,执行指令:python setup.py bdist_wheel
源码编译的错误与pip 安装sasl 库一样。
环境说明:
python版本为python 3.10
cp310:表示为python的版本,为python 3 10的
win_amd64:表示为驱动为windows 64位的驱动
对应sasl.whl 包 = sasl-0.3.1-cp310-cp310-win_amd64.whl
执行如下指令:
pip install sasl-0.3.1-cp310-cp310-win_amd64.whl
安装thrift
pip install thrift
安装thrift_sasl
pip install thrift_sasl
安装pyHive
pip install pyhive
- from pyhive import hive
-
- # 读取数据
- def select_pyhive(sql):
- # 创建hive连接
- conn = hive.Connection(host='192.168.43.11', port=10000, username='默认', database='user')
- cur = conn.cursor()
- try:
- #c = cur.fetchall()
- df = pd.read_sql(sql, conn)
- return df
- finally:
- if conn:
- conn.close()
-
- sql = "show databases"
- df = select_pyhive(sql)

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。