当前位置: 首页 > 知识库问答 >
问题:

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

羊浩广
2023-03-14

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

我的问题是:

  1. 可能吗(如果可能,怎么可能?)在服务器上运行的Flink集群上使用来自Flink作业的两个Kerberos keytabs(一个用于Kafka,另一个用于HDFS)?(因此Flink作业可以使用Kafka主题,同时写入HDFS)
  2. 如果不可能,当Kafka和HDFS都受Kerberos保护时,对于Kafka-Flink-HDFS数据流,有什么合理的解决方法

>

  • 我对这里提到的大多数技术都是新手。
  • 如果Flink作业不需要使用需要Kerberos的主题,则它可以写入HDFS。在本例中,我在flink-conf.yaml
  • 中为 security.kerberos.login.keytabsecurity.kerberos.login.principal指定了HDFS的信息
  • 我正在使用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:yyy@yyy.yyy...]

    • Flink(V1.4.2)https://ci.apache.org/projects/flink/flink-docs-stable/
    • Kafka客户端(V0.10.x)
    • HDFS(Hadoop cluster HDP 2.6.x)

    感谢您的关注和反馈!

  • 共有1个答案

    钱志强
    2023-03-14

    基于对这个非常相似的问题的回答和评论

    似乎没有明确的方法在一个闪烁作业中使用两个凭据。

    有希望的办法或变通办法:

      null
     类似资料:
    • 我正在尝试将使用SSIS包创建的数百个feed文件ETL作业替换为apache flink作业(并将kuberentes作为底层infra)的可行性。我在一些文章中看到的一条建议是“为一种工作使用一个flink集群”。 由于我每天都有少量的每种工作类型的工作,那么这意味着对我来说最好的方法是在执行工作时动态创建flinkcluster并销毁它以释放资源,这是正确的方法吗?我正在建立flinkclu

    • 我在Flink(Java)中创建了一个程序来计算3个不同房间的9个假传感器的平均值。如果我启动jar文件,该程序运行良好。所以我决定启动flink独立集群来检查运行我的作业和相应任务的TaskManager,如这里(https://ci.apache.org/projects/flink/flink-docs-stable/tutorials/local_setup.html)。我正在我的机器上运

    • 当我启动flink独立集群时,它会将守护程序日志记录在conf/log4j中提到的文件中。属性文件,当我在该集群中提交flink作业时,它使用相同的属性文件记录应用程序日志,并在TaskManager上写入相同的日志文件。我想为在flink独立集群中提交的每个应用程序提供单独的日志文件。有没有办法做到这一点

    • 我们的团队在我们的K8S集群中设置了Flink会话集群。我们选择Flink会话集群而不是作业集群,因为我们有许多不同的Flink作业,因此我们希望将Flink的开发和部署与我们的作业分离。我们的Flink设置包含: 单个JobManager作为K8S吊舱,无高可用性(HA)设置 我们在一个单独的存储库中开发工作,并在代码合并时部署到Flink集群。 现在,我们注意到在K8S中作为pod的JobMa

    • 我对Flink和库伯内特斯是新手。我计划创建一个flink流作业,将数据从文件系统流到Kafka。 使用工作正常的flink job jar(本地测试)。现在我正试图在kubernetes主持这项工作,并希望在AWS中使用EKS。 我已经阅读了有关如何设置flink群集的官方flink文档。https://ci.apache.org/projects/flink/flink-docs-releas

    • 我正在研究Flink 1.9.1的docker/k8s部署可能性。 我看完了[1][2][3][4]。 目前,我们确实认为,我们将尝试采用工作集群方法,尽管我们想知道社区的这一趋势是什么?我们不希望每个Flink集群部署多个作业。 不管怎样,我想知道一些事情: > 在这两种情况下,Flink的UI都显示每个任务管理器有4个CPU。 如果使用作业群集,如何重新提交作业。我指的是这个用例。你可能会说我