1.Flink開啟kerberos認證遇到的問題
在配置flink任務(wù)時,不能通過對單個任務(wù)進行kerberos驗證,只能在flink-conf文件中進行認證,這樣遇到的麻煩就是,每次啟動不同任務(wù)的時候,都需要進行依賴不同的conf文件
2.解決辦法
通過在flink github項目中查看,發(fā)現(xiàn)有pr提交了代碼,可以在flink任務(wù)啟動之初進行,conf文件加載
通過修改?flink/flink-clients/src/main/java/org/apache/flink/client/cli/CliFrontend.java文件中的main方法
public static void main(final String[] args) {
EnvironmentInformation.logEnvironmentInfo(LOG, "Command Line Client", args);
// 1. find the configuration directory
final String configurationDirectory = getConfigurationDirectoryFromEnv();
// 2. load the global configuration
final Configuration configuration =
GlobalConfiguration.loadConfiguration(configurationDirectory);
// 3. load the custom command lines
final List<CustomCommandLine> customCommandLines =
loadCustomCommandLines(configuration, configurationDirectory);
int retCode = 31;
try {
// 更改當(dāng)前代碼內(nèi)容,即可完成對conf文件的加載,進行conf文件的認證
final CliFrontend cli = new CliFrontend(configuration, customCommandLines);
CommandLine commandLine =
cli.getCommandLine(
new Options(), Arrays.copyOfRange(args, 1, args.length), true);
Configuration securityConfig = new Configuration(cli.configuration);
DynamicPropertiesUtil.encodeDynamicProperties(commandLine, securityConfig);
SecurityUtils.install(new SecurityConfiguration(securityConfig));
retCode = SecurityUtils.getInstalledContext().runSecured(() -> cli.parseAndRun(args));
} catch (Throwable t) {
final Throwable strippedThrowable =
ExceptionUtils.stripException(t, UndeclaredThrowableException.class);
LOG.error("Fatal error while running command line interface.", strippedThrowable);
strippedThrowable.printStackTrace();
} finally {
System.exit(retCode);
}
}
這樣在任務(wù)提交通過:
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 \
即可完成認證
文章來源:http://www.zghlxwxcb.cn/news/detail-601615.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-601615.html
到了這里,關(guān)于Flink支持kerberos認證的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!