当前位置:   article > 正文

Flink支持kerberos认证_flink kerberos认证

flink kerberos认证

1.Flink开启kerberos认证遇到的问题

在配置flink任务时,不能通过对单个任务进行kerberos验证,只能在flink-conf文件中进行认证,这样遇到的麻烦就是,每次启动不同任务的时候,都需要进行依赖不同的conf文件

2.解决办法

通过在flink github项目中查看,发现有pr提交了代码,可以在flink任务启动之初进行,conf文件加载

通过修改 flink/flink-clients/src/main/java/org/apache/flink/client/cli/CliFrontend.java文件中的main方法

  1. public static void main(final String[] args) {
  2. EnvironmentInformation.logEnvironmentInfo(LOG, "Command Line Client", args);
  3. // 1. find the configuration directory
  4. final String configurationDirectory = getConfigurationDirectoryFromEnv();
  5. // 2. load the global configuration
  6. final Configuration configuration =
  7. GlobalConfiguration.loadConfiguration(configurationDirectory);
  8. // 3. load the custom command lines
  9. final List<CustomCommandLine> customCommandLines =
  10. loadCustomCommandLines(configuration, configurationDirectory);
  11. int retCode = 31;
  12. try {
  13. // 更改当前代码内容,即可完成对conf文件的加载,进行conf文件的认证
  14. final CliFrontend cli = new CliFrontend(configuration, customCommandLines);
  15. CommandLine commandLine =
  16. cli.getCommandLine(
  17. new Options(), Arrays.copyOfRange(args, 1, args.length), true);
  18. Configuration securityConfig = new Configuration(cli.configuration);
  19. DynamicPropertiesUtil.encodeDynamicProperties(commandLine, securityConfig);
  20. SecurityUtils.install(new SecurityConfiguration(securityConfig));
  21. retCode = SecurityUtils.getInstalledContext().runSecured(() -> cli.parseAndRun(args));
  22. } catch (Throwable t) {
  23. final Throwable strippedThrowable =
  24. ExceptionUtils.stripException(t, UndeclaredThrowableException.class);
  25. LOG.error("Fatal error while running command line interface.", strippedThrowable);
  26. strippedThrowable.printStackTrace();
  27. } finally {
  28. System.exit(retCode);
  29. }
  30. }

这样在任务提交通过:

flink run -t yarn-per-job -d \

-Dsecurity.kerberos.login.keytab=/data2/home/zhu.hh/kafka3u1.keytab \
-Dsecurity.kerberos.login.principal=kafka3u1@BELLE.COM \
-Dsecurity.kerberos.login.contexts=KafkaClient \

即可完成认证

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/684361
推荐阅读
相关标签
  

闽ICP备14008679号