首页 > 其他分享 >hive kerberos

hive kerberos

时间:2023-03-17 09:47:58浏览次数:30  
标签:keytab kerberos hive keytabs datahub docker

 

 

前提准备:需krb5.conf和keytab文件,hive和kerberos的ip及hostname,hive数据库

1、  docker load -i actions.tar 重新加载actions镜像

2、  进入/data/datainsight/software/datahub-v0.8.41 重新启动actions容器 docker-compose -p datahub up -d

3、  以root用户进入actions容器内部

docker exec -it -u=root datahub_datahub-actions_1 /bin/bash

4、  把kerberos服务中/etc/krb5.conf文件复制到/etc路径下

#此步骤需要在宿主机完成

docker cp krb5.conf datahub_datahub-actions_1:/etc

5、  vi /etc/hosts 追加hive和kerberos的ip和hostname 示例如下

ping kdc.kerberos.com

ping hadoop.docker.com

确保通过hostname能ping通

6、  复制hive服务的principal生成的keytab文件到/home/datahub/keytabs路径下

#创建keytabs目录

mkdir /home/datahub/keytabs

# 把keytab文件的拥有者改为datahub

chown -R datahub:datahub /home/datahub/keytabs

#此步骤需要在宿主机完成 将keytabs文件复制到容器内部的/home/datahub/keytabs目录下

#hive.keytab为实例名称,以自己用的文件名为准,下面数据注入时会用到

如:docker cp hive.keytab datahub_datahub-actions_1:/home/datahub/keytabs

7、退出容器,以datahub用户身份重新进入容器

docker exec -it datahub_datahub-actions_1 /bin/bash

# 验证该keytab是否生效

kinit  -kt /home/datahub/keytabs/hive.keytab hive/hadoop.docker.com

klist

 

#使用python代码进行连接测试

cd /home/datahub

vi hive_kerberor_connect.py

 

from pyhive import hive
from krbcontext.context import krbContext


def select_by_hive(stmt):
host="hadoop.docker.com"
with krbContext(using_keytab=True,
principal="hive/[email protected]",
keytab_file="/home/datahub/keytabs/hive.keytab"):
//database 数据库名使用的是default 如没有需要改动 auth认证方式 port为hive服务的端口号
conn = hive.Connection(host=host, port="10000", database="default",
auth="KERBEROS",kerberos_service_name="hive")
cursor = conn.cursor()
cursor.execute(stmt)
data = cursor.fetchall()
conn.close()
return data


if __name__=="__main__":
sql="show tables"
result=select_by_hive(sql)
print(result)

 

# 运行代码

python hive_kerberor_connect.py

连接成功

7、  datahub 中source使用kerberos的连接hive的配置格式

 

source:
type: hive
config:
host_port: 'hadoop:10000'
database: default //数据库名称 不填选择所有的数据库
options:
connect_args:
auth: KERBEROS //认证方式 hive2.authentication
kerberos_service_name: hive
principal: hive/[email protected] //default principal
sink:
type: datahub-rest
config:
server: 'http://ip:8080' //服务器ip+port
token: //个人令牌
transformers:
-
type: industry_transformer
config:
industry_json: PI

标签:keytab,kerberos,hive,keytabs,datahub,docker
From: https://www.cnblogs.com/helloshikui/p/17225462.html

相关文章

  • 第76课:Spark SQL基于网站Log的综合案例实战之Hive数据导入、Spark SQL对数据操作每天
    /***王家林老师授课​​http://weibo.com/ilovepains​​*/ 每天晚上20:00YY频道现场授课频道68917580 第76课:SparkSQL基于网站Log的综合案例实战之Hive数据导入、Spa......
  • hive中牛逼的映射
    CREATETABLEIFNOTEXISTSjsontest(dateSTRING,channelSTRING,machineSTRING,resolutionSTRING,displaySTRING,ipSTRING,latSTRING......
  • 040.hive-hive建表注释中文乱码问题
     usehive;#mysql元数据库altertableCOLUMNS_V2modifycolumnCOMMENTvarchar(256)charactersetutf8;altertableTABLE_PARAMSmodifycolumnPARAM_VALUEvarc......
  • Hive中的高级函数
    高级函数1.炸裂函数UDTF   通常是将数组或者集合中或者结构体(涉及到数据类型-------复杂数据类型)中的元素单个输出特点:接收一行数据,输出一行或多行数据2.窗口函......
  • hive
    Hive一、Hive简介什么是HiveHive由FaceBook实现并开源基于Hadoop的数据仓库工具可以将结构化的数据映射为一张数据库表并提供HQL(HiveSql)查询功能底层数据是存储在......
  • 离线数仓之Kerberos基本使用及问题记录
    离线数仓之Kerberos基本使用及问题记录​​0.写在前面​​​1.Kerberos基本使用​​​0.启动Kerberos相关服务​​​​1.安全模式下启动Hadoop集群​​​2.安装Kerbero......
  • Hive date_format() 详解及其注意事项#yyds干货盘点#
    介绍date_format()是Hive中用于将日期时间值格式化为字符串的函数。该函数可以将日期时间值转换为目标格式的字符串。SELECTdate_format(date,format)FROMtable;......
  • 使用IntelliJ IDEA操作Hive时,执行查询语句报错
    问题描述:同样的查询语句在Hive客户端中能够顺利执行,而通过JDBC查询时报如下错误:org.apache.hadoop.security.AccessControlException:Permissiondenied:user=root,ac......
  • HiveSql调优系列之Hive严格模式,合理使用Hive严格模式
     所谓Hive的严格模式,就是为了避免用户提交一些恶意SQL,消耗大量资源进而使得运行环境崩溃做出的一些安全性的限制。而执行过程中,可以通过关闭Hive严格模式,方便执行HQL.......
  • Hive优化(提高hive运行速度)
    一、Hive使用本地模式执行操作(Hive使用资源大于20M的时候还是会采用集群yarn的方式运行)将hive的job交给yarn执行太慢,hive支持本地模式设置本地模式之前的,耗时9.068设......