Flink On Yarn 这是集群A,没有Kerberos;想写入到集群B的Hbase中,但是这个是有Kerberos的;本地跑可以写入集群B的Hbase,但是由A集群写入B就写入不成功。
A集群是否需要安装Kerberos,与B集群的Kerberos进行互信呢?如果不需要安装,如何解决呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
为了解决Flink on Yarn集群A无需直接安装Kerberos但仍需向启用了Kerberos的HBase集群B写入数据的问题,您可以通过以下步骤配置和操作:
上传Kerberos配置文件至集群A
krb5.conf
和针对HBase服务的keytab
文件(例如,属于具有HBase访问权限的用户)。/flink/usrlib/krb5.conf
和/flink/usrlib/hbase.keytab
。配置Flink作业以使用Kerberos认证
sasl.jaas.config
指向上传的keytab文件路径,并正确设置principal名称(格式如user@YOUR_REALM.COM
)。sasl.kerberos.service.name
为HBase服务名(通常为hbase
而非kafka
)。-Djava.security.krb5.conf=/flink/usrlib/krb5.conf
指定Kerberos配置文件路径。确保跨域信任(如果适用)
Flink集群A本身不需要安装Kerberos,关键在于作业配置中正确集成Kerberos认证信息,包括上传必要的Kerberos配置文件和keytab文件到Flink作业可访问的位置,并在作业提交时通过配置指定这些文件的路径及相应的Kerberos参数。如有跨域需求,则还需完成跨域互信配置。这样,即便集群A未启用Kerberos,也能成功地向受Kerberos保护的HBase集群B写入数据。