解决自定义Spark的jar包提交到yarn上使用cluster模式执行时报错keberos用户找不到问题
一、概述
在银行、基金和证券行业中,集群往往开启了kerberos安全验证,而如果用户创建kerberos用户的方式不对,就会产生各种各样的问题;比如当用户只创建了kerberos用户而没有将该用户名与系统用户绑定时,就会报错该用户找不到;涉及到shuffle操作的作业都会报类似的错误。
二、错误的创建kerberos用户的方法
1、创建kerberos用户
kadmin.local -q "addprinc -pw 123123 newhive"
其中123123位密码
newhive为用户名
2、进入到kadmin.local中生成新的keytab
kadmin.local
3、生成用户的keytab文件
ktadd -k /home/newhive/newhive.keytab -norandkey newhive
三、正确添加并创建kerberos用户的方法
1、为linux创建用户 useradd -m newhive
2、修改linux用户newhive的密码
centos 修改密码方式为 :echo "新密码" | passwd 用户名 --stdin
echo "123123" | passwd newhive--stdin
3、创建kerberos用户
kadmin.local -q "addprinc -pw 123123 newhive"
其中123123位密码
newhive为用户名
4、进入到kadmin.local中生成新的keytab
kadmin.local
5、生成用户的keytab文件
ktadd -k /home/newhive/newhive.keytab -norandkey newhive
注意:-norandkey要加上,不然集群所有的用户的keytab信息都会重置