Python连接hive数据中遇到的各种坑

2023-11-06

这里选择的是使用:impala+Python3.6来连接hive数据库

第一步要先在服务器开启hiveserver2 服务!!!不然会连不上的,报如下错误

开启方法很简单 到hive安装目录的bin目录下(your_path/apache-hive-1.2.2-bin/bin/hiveserver2)  输入 hiveserver2 &  回车

 

from impala.dbapi import connect
from impala.util import as_pandas
conn = connect(host='192.168.118.118', port=10000, user='root', database='default', password='root', auth_mechanism ='PLAIN')
cursor = conn.cursor()
cursor.execute('show tables')

for result in cursor.fetchall():
    print(result)

建议显示使用auth_mechanism=’PLAIN',不然会报如下错误

 

TProtocolException: TProtocolException(type=4)

如果thift-sal版本高于0.3则会报如下错误

AttributeError: 'TSocket' object has no attribute 'isOpen'

需要降版本

pip uninstall thrift-sasl
pip install thrift-sasl==0.2.1

如果有安装sasl则会报如下错误

thriftpy.transport.TTransportException: TTransportException(type=1, message="Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: Unable to find a callback: 2'")

要卸载sasl

pip uninstall SASL
pip uninstall sasl

然后可能遇到最后一个错误

TypeError: can't concat str to bytes

则按照错误提示定位到第94行,修添加如下语句

header = struct.pack(">BI", status, len(body))
#按照网上的提供的办法增加对BODY的处理
if (type(body) is str):
  body = body.encode()
# 以上两句是需要添加的
self._trans.write(header + body)
self._trans.flush()

效果如图

最后应该不会有什么问题了,学的开心呦 o(* ̄▽ ̄*)ブ

最后总结一下,连接Hadoop数据库中各种依赖包,请大家仔细核对一下依赖包(最好是依赖包相同,也就是不多不少[我说的是相关的包],这样真的可以避免很多问题的出现)

序号 包名 版本号 安装命令行
1 pure_sasl 0.5.1 pip install pure_sasl==0.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
2 thrift 0.9.3 pip install thrift==0.9.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
3 bitarray 0.8.3 pip install bitarray==0.8.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
4 thrift_sasl 0.2.1 pip install thrift_sasl==0.2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
5 thriftpy 0.3.9 pip install thriftpy==0.3.9 -i https://pypi.tuna.tsinghua.edu.cn/simple
6 impyla 0.14.1 pip install impyla==0.14.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

建议按顺序安装,我这边之前有依赖包的问题,但是最终我是通过conda进行安装的。
其中在安装thriftpy、thrift_sasl、impyla报的时候报错,想到自己有conda,直接使用conda install,会自动下载依赖的包,如下所示(供没有conda环境的同学参考)

package build size
ply-3.11 py37_0 80 KB
conda-4.6.1 py37_0 1.7 MB
thriftpy-0.3.9 py37h1de35cc_2 171 KB
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python连接hive数据中遇到的各种坑 的相关文章

  • 如何在 Matplotlib 饼图周围绘制箭头以将每个标签指向圆圈中各自的部分?

    我一直在用 Matplotlib 绘制一些图表 我有一个饼图 想要在图表周围绘制箭头 使每个标签都指向图表 我有一个例子 这是我当前的代码 import matplotlib pyplot as plt plt rcParams font
  • 在 Celery 任务中调用 Google Cloud API 永远不会返回

    我正在尝试拨打外部电话Google Cloud Natural Language API从一个内Celery任务 使用google cloud python包裹 问题是对 API 的调用永远不会返回 挂起 celery task def g
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • Python 3d 绘图设置固定色阶

    我正在尝试绘制两个 3d 数组 第一个数组的 z 值在范围内 0 15 0 15 第二个来自 0 001 0 001 当我绘图时 色标自动遵循数据范围 如何设置自定义比例 我不想看到 0 001 的浅色 而应该看到 0 15 的浅色 如何修
  • Python 内置的 super() 是否违反了 DRY?

    显然这是有原因的 但我没有足够的经验来认识到这一点 这是Python中给出的例子docs http docs python org 2 library functions html super class C B def method se
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • 使用 python/numpy 重塑数组

    我想重塑以下数组 gt gt gt test array 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 为了得到 gt gt gt test2 array 11 12 21 22 13 14
  • python的shutil.move()在linux上是原子的吗?

    我想知道python的shutil move在linux上是否是原子的 如果源文件和目标文件位于两个不同的分区上 行为是否不同 或者与它们存在于同一分区上时的行为相同吗 我更关心的是如果源文件和目标文件位于同一分区上 shutil move
  • Django 视图中的“请求”是什么

    在 Django 第一个应用程序的 Django 教程中 我们有 from django http import HttpResponse def index request return HttpResponse Hello world
  • 关于 Hadoop 和压缩输入文件的非常基本的问题

    我已经开始研究 Hadoop 如果我的理解是正确的 我可以处理一个非常大的文件 它会被分割到不同的节点上 但是如果文件被压缩 那么文件就无法分割 并且需要由单个节点处理 有效地破坏了运行一个mapreduce 一个并行机器集群 我的问题是
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • 在 Google App Engine 中,如何避免创建具有相同属性的重复实体?

    我正在尝试添加一个事务 以避免创建具有相同属性的两个实体 在我的应用程序中 每次看到新的 Google 用户登录时 我都会创建一个新的播放器 当新的 Google 用户在几毫秒内进行多个 json 调用时 我当前的实现偶尔会创建重复的播放器
  • Python:Goslate 翻译请求返回“503:服务不可用”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们不允许提出寻求书籍 工具 软件库等推荐的问题 您可以编辑问题 以便用事实和引文来回答 这个问题似乎不是关于主要由程序员使用的特定编程问
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 如何配置Hive仓库路径?

    我修改了这部分
  • pandas.read_csv 将列名移动一倍

    我正在使用位于的 ALL zip 文件here http www fec gov disclosurep PDownload do 我的目标是用它创建一个 pandas DataFrame 但是 如果我跑 data pd read csv
  • python 对浮点数进行不正确的舍入

    gt gt gt a 0 3135 gt gt gt print 3f a 0 314 gt gt gt a 0 3125 gt gt gt print 3f a 0 312 gt gt gt 我期待 0 313 而不是 0 312 有没有
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size
  • 如何在Python脚本中从youtube-dl中提取文件大小?

    我是 python 编程新手 我想在下载之前提取视频 音频大小 任何 YouTube 视频 gt gt gt from youtube dl import YoutubeDL gt gt gt url https www youtube c

随机推荐

  • 计网习题——第三章

    R1 假定网络层提供了下列服务 在源主机中的网络层接受最大长度1200字节和来自运输层的目的主机地址的报文段 网络层则保证将该报文段交付给位于目的主机的运输层 假定在目的主机上能够运行许多网络应用进程 a 设计可能最简单的运输层协议 该协议
  • 开源物联网平台ThingsBoard的安装

    ThingsBoard是一个开源平台 功能强大 性能稳定 用于收集和可视化物联网设备的数据 可以将来自任意数量设备的数据发送到云服务器 在云服务器中可以通过可自定义的仪表板查看或共享 ThingsBoard相关概念 租户tenant 拥有或
  • SQLi-Labs 学习笔记(Less 51-65)

    点击打开链接 Less 51 本关的Sql语句为 plain view plain copy sql SELECT FROM users ORDER BY id 因为此处用的是执行多个针对数据库的查询函数 mysqli multi quer
  • Linux——(第四章)关机、重启和用户登录注销

    目录 1 关机 重启命令 2 用户的登录和注销 1 关机 重启命令 一般情况很少遇到服务器关机操作 基本语法 sync 将数据由内存同步到硬盘中 该命令在重启和关机前执行 halt 立刻关机 关闭系统 但不断电 poweroff 关机 断电
  • Windows的AppData 文件夹

    文章目录 前言 AppData 文件夹是什么 如何查看 AppData 文件夹 AppData 文件夹的应用 有些软件为什么安装到AppData而不是Program Files AppData文件可以删除吗 可以删除的文件 其他常识文件 前
  • 知乎广告效果怎么样?有哪些优势呢?

    随着移动互联网的不断发展 在当下流量越来越贵的背景下 知乎平台以其独特的优势 特别失在内容营销方面独树一帜 相比较其它平台有着明显的优势 主要体现在 1 转化率高 因为知乎作为国内领先的互动问答平台 很多用户是因为有问题 上知乎找解决方案的
  • web 前后台数据交互的方式

    做web开发 很重要的一个环节就是前后台的数据的交互 数据从页面提交到contoller层 数据从controler层传送到jsp页面来显示 这2个过程中数据具体是如何来传送的 是本节讲解的内容 首先说一下数据如何从后台的contorlle
  • ubuntu22.04.1设置root登陆

    一 设置root密码 sudo passwd root 输入自己的超级用户密码 设置root账户密码 二 设置系统登陆界面 1 su root 2 gedit etc pam d gdm autologin 在弹出窗口中找到 auth re
  • numpy.argsort()函数参数以及案例问题

    参考博客网址是 numpy argsort函数 summer2day的博客 CSDN博客 argsort函数numpy argsort a axis 1 kind quicksort order None 返回的是数组值从小到大的索引值 参
  • JAVA获取部门人员树

    直接上代码 无需多言 主要还是递归 实体类 Data ApiModel NoArgsConstructor public class TreeDept implements Serializable type 0 表示是部门 type 1
  • 一个好用的在线RSS阅读器

    最近用国外IP访问有道阅读貌似有问题 于是找了一些替代品尝试 http reader aol com 这个和Google Reader最相似 不过导入有道阅读的OPML总是不成功 http www inoreader com 这个也相当好
  • Debian 10 安装网络yum源

    Debian 10 安装网络yum源 实验环境一台最小化Debian10 IP地址是192 168 10 1 24 还需要一张外网的网卡 配置网络 vim etc network interfaces 编辑网络配置文件 auto ens37
  • Python提取评论(使用pycharm+Python)

    一 安装调用所要用到的库函数 import requests from bs4 import BeautifulSoup 二 自定义根据每页影评的url爬取影评的方法 1 请求url def getData url 三 请求头为字典格式 h
  • java图片转base64注意事项

    java转base64有两点需要注意的地方 在window操作系统中 图片转换为base64 在base64的字符串中会有默认换行 这就破坏了json格式 所以这里需要做一下处理 除此之外 在java转base64时 会缺少base64字符
  • torch.cat的参数dim到底是在哪个维度拼接

    如果将两个维度为 n c h w 进行拼接 如果指定dim为以下值 dim 0 拼接后维度为 2n c h w dim 1 拼接后维度为 n 2c h w dim 2 拼接后维度为 n c 2h w dim 3 拼接后维度为 n c h 2
  • C#常见变量类型和使用规则

    C 常见变量类型和使用规则 常见变量类型 C 中值类型的变量主要包括整数类型 浮点类型 金钱 decimal 类型和布尔 bool 类型等 1 整数类型 int 范围 2 147 483 648 2 147 483 647 大小 32位有符
  • 合宙Air001点灯+闪烁(寄存器版)

    观前提醒 只是我学单片机的一个简单记录 会比较啰嗦 但是我在研究单片机寄存器过程中真实的心得体会 希望能帮到读者 打完电赛觉得自己的单片机白学了 于是想从寄存器从头开始学一遍单片机 刚好前段时间发现合宙AIR001这款单片机 外设较少且相对
  • QT之TCP网络传输系列 - 目录

    最近被大boss安排做纯软件开发项目 囧 本来我硕士方向是 传统机器学习特征提取 这一部分 读博近两年主要做 以深度学习为基础的视频分析 相关研究 我一个搞算法的去做软件开发 都是泪啊 但为了毕业 给啥任务都能 得 完成 o o 以下整理一
  • 热门去水印小助手小程序独立安装版+前端免费分享

    热门去水印小助手小程序独立安装版来自网络资源 请自测 该源码是本人在外面找回来 大家可以测试自用下 看看有什么瑰丽 去水印的也是比较火的 现在各大平台 搬运视频 大家都需要的 但是给大家一个建议 这个网上分享的共享开源源码 一般是有限制的
  • Python连接hive数据中遇到的各种坑

    这里选择的是使用 impala Python3 6来连接hive数据库 第一步要先在服务器开启hiveserver2 服务 不然会连不上的 报如下错误 开启方法很简单 到hive安装目录的bin目录下 your path apache hi