zeppelin 连接hive 认证方式_superset配置mysql&hive指南

superset支持的数据库,以及每种数据库需要的安装包与链接格式参见

Documentation​superset.apache.org

1.配置mysql

官方对mysql的说明如图所示

75ef2d1957e8abfb849061de08f6c1eb.png

安装列表:

PyMySQL mysqlclient

连接方式:

 mysql+pymysql://user:password@10.108.231.232:6701/database?charset=utf8

2.配置hive

安装列表:

PyHive

superset是用pihive连接数据库的,可以现在服务器上写脚本测试是否可以连接到hive数据库:

import json
from pyhive import hive
 
 
conn = hive.connect(
    host="test-hadoop.hive.srv", port=10000,  # 服务器地址
    auth="KERBEROS", kerberos_service_name="sql_prc",  #验证方式
    configuration={
        'mapreduce.map.memory.mb':'4096',
        'mapreduce.reduce.memory.mb':'4096',
        'mapreduce.map.java.opts':'-Xmx3072m',
        'mapreduce.reduce.java.opts':'-Xmx3072m',
        'hive.input.format':'org.apache.hadoop.hive.ql.io.HiveInputFormat',
        'hive.limit.optimize.enable':'false',
        'mapreduce.job.queuename':'root.production.miot_group.test.data'  # 队列
    }
)
#查询数据
import pandas as pd
sql = "SHOW PARTITIONS test.dws_up_test"
df = pd.read_sql(sql, conn)
print(df)

我的hive服务器是采用kerberos进行认证的,在datasources中添加hive源,我要添加的数据库名称为boss,kerberos验证名称为sql_prc,所以hive地址为

hive://hostname:10000/boss?auth=KERBEROS&kerberos_service_name=sql_prc

测试连接时报

ERROR: {"error": "Connection failed!nnThe error message returned was:nCould not start SASL: b'Error in sasl_client_start (-1) SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Ticket expired)'"}

解决方案:

打开~/anaconda3/envs/superset/lib/python3.6/site-packages/pyhive文件,将下面第一句注释掉,改为第二句

#sasl_client.setAttr('host', host)
sasl_client.setAttr('host', 'HADOOP') 

之后还是报错,这是服务器没有验证kerberos导致的,在服务器上执行

kinit -kt /etc/user.keytab user@SVR.HADOOP

连接成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值