Kinesis数据分析(Flink)-如何配置环境变量



我们目前正在Kubernetes上以独立模式运行一个flink集群。我们想探索是否可以在AWS(KDA(上迁移到托管的flink。

但我似乎没有发现任何文档或指示可以注入环境变量?这些是否需要作为运行时参数提供?

相关的,是否可以覆盖我们当前在托管flink中的flink-conf.yml中指定的默认flink配置?

提前感谢!

我会回答我自己的问题,我似乎没有办法像在Kubernetes中使用configmap那样提供环境变量。相反,我们需要使用可以在KDA中定义的Runtime属性。然后可以使用KinesisAnalyticsRuntime.getApplicationProperties()进行检索

例如:

val params: ParameterTool = ParameterTool.fromArgs(args)
val config = params.get("env", "") match {
case "local" => AppConfiguration.initialize(sys.env)
case _ => // KDA
val kdaProperties = KinesisAnalyticsRuntime.getApplicationProperties()
logger.error(
s"kdaProperties $kdaProperties",
Some(Map("kda" -> kdaProperties))
)
Option(kdaProperties.get("DevProperties")) match {
case Some(kdaProperties) =>
val kdaPropsToMap = kdaProperties.asScala.toMap
AppConfiguration.initialize(kdaPropsToMap)
case None =>
logger.error(s"could not read KDA runtime properties", Some(Map("kda" -> kdaProperties)))
throw new Error(
"unable to read KDA runtime properties"
) // scalafix:ok
}
}

在KDA中为Runtime属性定义的分组键用于获取这些属性。

这也意味着可以将flink-conf.yml配置为运行时属性,然后需要在运行时设置(我的理解是(

相关内容

  • 没有找到相关文章

最新更新