小编sun*_*ize的帖子

如何在 Flink 独立集群上的 Flink 作业中使用两个 Kerberos 密钥表(用于 Kafka 和 Hadoop HDFS)?

在服务器上运行的 Flink 独立集群上,我正在 Scala 中开发 Flink 流作业。该作业使用来自 1 个以上 Kafka 主题的数据(进行一些格式化)并将结果写入 HDFS。

Kafka 主题之一和 HDFS,它们都需要单独的 Kerberos 身份验证(因为它们属于完全不同的集群)。

我的问题是:

  1. 是否有可能(如果是,如何?)从服务器上运行的 Flink 集群上的 Flink 作业中使用两个 Kerberos 密钥表(一个用于 Kafka,另一个用于 HDFS)?(所以 Flink 作业可以从 Kafka topic 消费并同时写入 HDFS)
  2. 如果不可能,当 Kafka 和 HDFS 都受 Kerberos 保护时,对于 Kafka-Flink-HDFS 数据流,什么是合理的解决方法?

笔记

  • 我对这里提到的大多数技术都很陌生。
  • 如果 Flink 作业不需要使用需要 Kerberos 的主题,则它可以写入 HDFS。在这种情况下,我指定HDFS的信息,security.kerberos.login.keytabsecurity.kerberos.login.principalflink-conf.yaml
  • 我正在使用Flink 提供的 HDFS 连接器写入 HDFS。
  • 可以在两个主体之间手动切换 Kerberos 身份验证。在krb5.conf文件的[realm] 部分,我指定了两个领域,一个用于 Kafka,另一个用于 HDFS。

    kinit -kt path/to/hdfs.keytab [principal: xxx@XXX.XXX...]

    kinit -kt path/to/kafka.keytab [principal: …

hadoop hdfs apache-kafka apache-flink flink-streaming

5
推荐指数
1
解决办法
935
查看次数