Fayson的github: https://github.com/fayson/cdhproject
推荐关注微信公众号:“Hadoop实操”,ID:gh_c4c535955d0f
1 文档编写目的
在前面的文章《CDH5.15.0-同一OS用户下不同Kerberos用户执行脚本Principal串掉问题分析》中Fayson主要介绍了同一个OS用户下并发调度Python脚本时会导致Principal账号串掉,通过在Python代码中指定KRB5CCNAME环境变量解决问题,本篇文章Fayson主要介绍通过同一OS用户下并发调度Shell脚本进行不同用户Kerberos认证时Principal账号串掉问题分析及解决。
测试环境
1.RedHat7.3
2.CDH5.16.1
2 问题描述
Fayson通过一段简单的shell脚本示例代码说明问题,在代码中执行kinit命令初始化Kerberos信息,通过hadoop命令去统计各自用户目录下子目录大小,具体代码如下:
a_fayson.sh脚本内容如下:
[root@cdh4 shell-test]# more a_fayson.sh
kinit -kt /root/shell-test/fayson.keytab fayson
klist
hadoop fs -du -h /user/fayson
a_cdhadmin.sh脚本内容如下:
[root@cdh4 shell-test]# more a_cdhadmin.sh
kinit -kt /root/shell-test/cdhadmin.fayson cdhadmin
klist
hadoop fs -du -h /user/cdhadmin

本文详细分析了在同一OS用户下,两个并发执行的Shell脚本中使用不同Kerberos Principal时出现的串掉问题。问题根源在于Ticket Cache文件被不同用户脚本覆盖。解决方案包括在脚本中通过设置KRB5CCNAME环境变量,指定独立的Ticket Cache文件,避免冲突。文章提供了两种具体的解决方法,并总结了防止票据信息串掉的关键点。
最低0.47元/天 解锁文章
246

被折叠的 条评论
为什么被折叠?



