最近使用flink-1.11.1在通过per-job方式提交任务到yarn队列的时候,碰到了kerberos权限认证问题。
具体描述:在客户端通过Kerberos权限认证指定用户,提交flink任务到yarn队列,正常提交,但是当任务被yarn分配到指定节点进行执行时,根据报错信息来看,是因为需要操作hdfs(创建检查点目录和保存点目录,因为我使用FileSystem StateBackend)而并没有获得操作hdfs的权限,被kerberos常规的拦截了。
所以我通过查找社区邮件了解到,使用-yD参数可以避免这个问题,但是理论上来说在客户端通过认证并成功提交到yarn之后,无论是任务提交节点还是任务执行节点,权限都应该互通吗?
这里的-yD security.kerberos.login.principal=xxx -yD security.kerberos.login.keytab=xxx是纯粹为了解决这类问题而使用的吗?帮忙解惑~*来自志愿者整理的flink邮件归档
请问描述中的"在客户端通过Kerberos权限认证指定用户"指的具体是什么操作?
-yD security.kerberos.login.principal=xxx -yD security.kerberos.login.keytab=xxx
这两个参数的作用是在Flink中enable
HadoopModule,这个Module利用UserGroupInformation来处理Kerberos认证。同时在Yarn部署中,会帮你把这个Keytab上传到yarn中的container里。
可以参照社区文档再看一下[1]
[1] https://ci.apache.org/projects/flink/flink-docs-master/ops/security-kerberos.html*来自志愿者整理的flink邮件归档
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。