python 操作hive pyhs2方式


Posted in Python onDecember 21, 2019

使用kerberos时

import pyhs2

class HiveClient:
  # 初始化
  def __init__(self, db_host, user, password, database, port=10000, authMechanism="PLAIN", configuration=None):
    self.conn = pyhs2.connect(host=db_host,
                 port=port,
                 authMechanism=authMechanism,
                 user=user,
                 password=password,
                 database=database,
                 configuration=configuration,
                 )

  # 查询方法
  def query(self, sql):
    with self.conn.cursor() as cursor:
      cursor.execute(sql)
      return cursor.fetch()

  def close(self):
    self.conn.close()


def getHiveData(sql):
  config = {"mapreduce.job.queuename": "default", 'krb_host': 'hiveserve2ip', 'krb_service': 'hive'}
  hive_client = HiveClient(db_host='hiveserve2ip', port=10000, user='user@kdc.com', password='hive', database='dw.usee',
               authMechanism='KERBEROS', configuration=config)
  print sql
  result = hive_client.query(sql)
  return result
Could not start SASL: Error in sasl_client_start (-1) SASL(-1)

安装

yum install cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi

pyhs2 安装 sasl问题

yum install cyrus-sasl-devel 
yum install cyrus-sasl-lib 
yum install libgsasl-devel 
yum install saslwrapper

对接superset hive kerberos

SQLAlchemy URI

hive://herverser2ip:10000/db

扩展 连接参数

{
  "metadata_params": {},
  "engine_params": {
    "connect_args": {
    "auth": "KERBEROS",
        "kerberos_service_name": "hive",
    "username" : "user@KDC.COM"
    }
  }
}

以上这篇python 操作hive pyhs2方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中logging模块的用法实例
Sep 29 Python
Python中列表、字典、元组数据结构的简单学习笔记
Mar 20 Python
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
python字符串中的单双引
Feb 16 Python
全面了解Nginx, WSGI, Flask之间的关系
Jan 09 Python
Python编程argparse入门浅析
Feb 07 Python
python保存文件方法小结
Jul 27 Python
Python3 修改默认环境的方法
Feb 16 Python
Python 中Django安装和使用教程详解
Jul 03 Python
pytorch torchvision.ImageFolder的用法介绍
Feb 20 Python
Python填充任意颜色,不同算法时间差异分析说明
May 16 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
Dec 09 Python
python 消费 kafka 数据教程
Dec 21 #Python
python kafka 多线程消费者&手动提交实例
Dec 21 #Python
Python序列类型的打包和解包实例
Dec 21 #Python
Python 使用threading+Queue实现线程池示例
Dec 21 #Python
Python CSV文件模块的使用案例分析
Dec 21 #Python
python实现的分析并统计nginx日志数据功能示例
Dec 21 #Python
Python数据持久化存储实现方法分析
Dec 21 #Python
You might like
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
php循环table实现一行两列显示的方法
2015/06/04 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
JQuery 无废话系列教程(一) jquery入门 [推荐]
2009/06/23 Javascript
Jquery中dialog属性小记
2010/09/03 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
JQuery显示隐藏DIV的方法及代码实例
2015/04/16 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
javascript如何实现暂停功能
2015/11/06 Javascript
JQuery点击行tr实现checkBox选中的简单实例
2016/05/26 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
2016/11/02 Javascript
原生js编写焦点图效果
2016/12/08 Javascript
angular实现图片懒加载实例代码
2017/06/08 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
[46:48]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第三局
2016/02/25 DOTA
[01:39:42]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python中正则的使用指南
2016/12/04 Python
Python装饰器语法糖
2019/01/02 Python
python读取txt文件并取其某一列数据的示例
2019/02/19 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
python 装饰器的实际作用有哪些
2020/09/07 Python
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
Ryderwear美国官网:澳大利亚高端健身训练装备品牌
2018/04/24 全球购物
瑞典香水、须后水和美容产品购物网站:Parfym-Klick.se
2019/12/29 全球购物
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
学雷锋标兵事迹材料
2014/08/18 职场文书
放射科岗位职责
2015/02/14 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript
golang中字符串MD5生成方式总结
2021/07/04 Golang