Python 3 使用Hive 总结

启动HiveServer2 服务

HiveServer2 是一种可选的 Hive 内置服务,可以允许远程客户端使用不同编程语言向 Hive 提交请求并返回结果。

Thrift服务配置

假设我们已经成功安装了 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 客户端密码

启动HiveServer2 服务 

方式一:$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

检查 HiveServer2 是否启动成功

netstat -nl | grep 10000

启动 hiveserver2 ,访问Hive 管理平台

默认访问地址:http://192.168.43.11:10002/

效果截图:

Python 连接Hive

依赖的第三方库包 

pip install sasl
pip install thrift
pip install thrift-sasl
pip install PyHive

温馨提示:首先是pyhive的安装:pyhive这个包依 赖于sasl,thrift,thrift-sasl这三个包。

安装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 头文件。

Google 和百度的解决办法

通过加利福利亚大学的的镜像地址: 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 内容主要包含:

  • 支持python-3.5.0 至python-3.9.0 版本且系统架构仅支持Linux 架构。
  • 提供sasl第三方库源码:支持0.1.1 至0.3.1

编译Sasl-0.3.1 源码,生成Sasl.whl 文件

通过清华镜像下载Sasl 源码,解压后的效果截图:

切换至Sasl  源码,执行指令:python setup.py bdist_wheel 

源码编译的错误与pip 安装sasl 库一样。

借鉴其他安装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

Python 连接Hive 代码 

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)

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
爬虫、MySQL、Hive、Spark、Flink和Python是一些流行的工具和技术,可以用来构建一个复杂的项目。下面是一个简单的示例项目: 当我们在网上浏览时,我们可能会发现很多有趣的文章,但经常会忘记将其保存下来。因此,我决定构建一个项目,拥有以下功能: 1. 爬虫:使用Python编写一个爬虫,从特定的网站上抓取文章的URL、标题和内容等信息。爬虫可以使用`BeautifulSoup`和`requests`等库进行开发。爬取的数据可以保存在MySQL数据库中。 2. 数据存储:MySQL数据库用于存储爬虫抓取的文章信息。可以使用Python的`mysql-connector`库与MySQL数据库进行交互。 3. 数据处理:数据收集完毕后,可以使用Hive进行数据清洗和分析。Hive是一个数据仓库基础架构,可以用于处理大规模数据并执行复杂的SQL查询。可以使用HQL(类似于SQL)编写查询语句,进行数据清洗和处理操作。 4. 数据分析:使用Spark和Flink进行大规模数据处理和分析。Spark和Flink是两个流行的开源分析引擎,可以处理大量数据并进行实时分析。可以使用Python编写Spark和Flink的应用程序,对爬虫抓取的文章数据进行分析,并从中提取出有用的信息。 5. 结果呈现:最后,可以使用Python的数据可视化库(如Matplotlib或Plotly)将分析结果可视化并以图表或图形的形式展示出来。这样,用户可以更容易地理解和理解数据分析的结果。 总结来说,这个项目使用Python编写的爬虫抓取文章数据,存储在MySQL数据库中。随后,使用Hive进行数据清洗和处理,使用Spark和Flink进行大规模数据处理和实时分析,最后使用Python的数据可视化库展示分析结果。这个项目结合了爬虫、数据库、数据处理和数据可视化等技术,提供了一个从网上抓取文章数据并进行分析的完整流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值