DolphinScheduler启用Kerberos(亲测)

环境背景

使用DolphinScheduler3.0.0+CDH6.3.2(适配之前已存在任务环境)

已知问题

  1. DolphinScheduler3.1.4默认是zookeeper3.8,需要手动编译zk3.4+,使用3.0.0正常

  1. DolphinScheduler的hive相关依赖和CDH的版本不一致,需要在编译时修改pom文件

  1. 开启Kerberos时使用DolphinScheduler添加Hive数据源日志报错Peer indicated failure: Unsupported mechanism type PLAIN,在github的issue上有人说是bug,所以我手动编译3.1.4版本,问题依然存在,最终确定是依赖问题,下面附解决方法

  1. hive数据源配置kerberos连接失败

  1. 执行spark yarn cluster任务失败 code -1000

添加hive数据源jdbc连接参数{"principal":"hive/_HOST@EXAMPLE.COM"},3.x版本的principle参数填写无效,保存->编辑无法回显,但是可正常使用

开始配置

  1. 按照官网说明修改master,worker,api模块下面的conf/common.properties相关的Kerberos配置

  1. 使用kadmin.local生成keytab文件及相应的princal,不让之前配置密码失效加-norandkey

kadmin.local -q "xst -k /opt/hdfs.keytab hdfs@EXAMPLE.COM"
  1. crontab添加定时任务kinit -kt /opt/software/kerberos/hdfs.keytab hdfs

  1. 配置正确重启小海豚,spark任务不需要任何修改是可以正常执行的,添加hive数据源异常

思路参考

方法一(简单)

(1)复制依赖hive-shim相关依赖

cdh_jars=/opt/xxx/CDH-xxx/jars
dol314=/opt/dolphinscheduler
cp $cdh_jars/hive-shims-* $dol314/mater-server/libs
cp $cdh_jars/hive-shims-* $dol314/worker-server/libs
cp $cdh_jars/hive-shims-* $dol314/api-server/libs

(2)连接参数配置{"principal":"hive/_HOST@EXAMPLE.COM"}

方法二

(1)重新编译小海豚,修改pom文件,添加hive-shim依赖注意版本

连接成功

tips:第一次连接成功后,会有缓存,删除jdbc连接参数也能连接成功,所以会误导,而且存在一个bug,保存后再次点击编辑,principle的值没有回显,但是不影响使用

可能报错

  1. java.sql.SQLException: Could not open client transport with JDBC Uri: GSS initiate failed

检查配置的kerberos相关信息是否正确

  1. java.lang.NoClassDefFoundError: org/apache/hadoop/hive/thrift/TFilterTransport

shim-*.jar包依赖问题或者jdbc连接参数中存在{"principal":"hive/_HOST@EXAMPLE.COM"}

  1. spark本地模式正常,集群模式失败:

Requested user hdfs is not whitelisted and has id 994,which is below the minimum allowed 1000

user: hdfs

修改CM的yarn配置,min.user.id->改为0和banned.users->删除hdfs,保存,重启yarn

  1. 其他问题参考 https://www.freesion.com/article/4372349629/

注意事项

  1. hive的principle可以使用配置文件里面的,也可以使用CM创建的hive/master@EXAMPLE.COM,用户名默认hive就行

  1. kerberos命名规则,用户/主机@Realm,使用keytab,原来的密码失效(创建keytab可添加密码不失效参数-norandkey),一个用户可以访问所有服务

  1. window客户端使用要保证krb5.conf的kdc和admin_server和服务端一致

  1. 使用kerberos服务要么用户定时任务使用keytab文件认证要么参数配置principle参数

  1. 注意keytab文件的权限,用户无权访问keytab文件也会报错

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值