Apache Flink和Pureconfig - 在作业启动时传递java属性
创始人
2024-09-04 01:30:37
0

要在Apache Flink作业启动时传递Java属性,您可以使用Pureconfig库来解析配置文件,并将属性传递给Flink作业。

下面是一个示例,展示了如何使用Pureconfig和Flink来传递Java属性。

首先,您需要添加以下依赖项到您的build.sbt文件中:

libraryDependencies += "com.typesafe" % "config" % "1.4.1"
libraryDependencies += "com.github.pureconfig" %% "pureconfig" % "0.17.0"

然后,您可以创建一个配置文件(例如application.conf),其中包含您想要传递给作业的Java属性。例如:

myapp {
  jobName = "myJob"
  parallelism = 4
  inputPath = "/path/to/input"
  outputPath = "/path/to/output"
}

接下来,您可以创建一个Config case类,用于解析配置文件中的属性。例如:

import pureconfig._
import pureconfig.generic.auto._

case class MyAppConfig(jobName: String, parallelism: Int, inputPath: String, outputPath: String)

object MyAppConfig {
  def load(): MyAppConfig = {
    ConfigSource.default.loadOrThrow[MyAppConfig]
  }
}

然后,在Flink作业的主方法中,您可以通过调用MyAppConfig.load()来加载配置文件中的属性,并将它们传递给作业。例如:

import org.apache.flink.api.java.utils.ParameterTool

object MyAppJob {
  def main(args: Array[String]): Unit = {
    val config = MyAppConfig.load()

    val params = ParameterTool.fromArgs(args)
    params.getProperties.setProperty("job.name", config.jobName)
    params.getProperties.setProperty("parallelism.default", config.parallelism.toString)
    params.getProperties.setProperty("input.path", config.inputPath)
    params.getProperties.setProperty("output.path", config.outputPath)

    val env = StreamExecutionEnvironment.getExecutionEnvironment
    env.getConfig.setGlobalJobParameters(params)

    // 在这里定义和执行Flink作业
  }
}

现在,您可以使用--config.file参数来指定配置文件,从而将Java属性传递给Flink作业。例如:

./bin/flink run --class com.example.MyAppJob --config.file /path/to/application.conf /path/to/myApp.jar

在作业运行时,Flink将自动加载配置文件中的属性,并将它们作为Java属性传递给作业。

请注意,上述示例假定您正在使用Flink的DataStream API编写流作业。如果您正在使用Flink的批处理API编写批作业,则需要相应地更改代码。

相关内容

热门资讯

七分钟辅助!丽水茶苑苹果手机辅... 七分钟辅助!丽水茶苑苹果手机辅助,本来是真的有辅助教程(有挂方式)1、实时丽水茶苑苹果手机辅助透视辅...
第一分钟辅助!闲来辅助神器下载... 第一分钟辅助!闲来辅助神器下载2022,好像真的有辅助方法(有挂教程)1、不需要AI权限,帮助你快速...
九分钟辅助!丽水都莱辅助工具试... 九分钟辅助!丽水都莱辅助工具试用,确实存在有辅助神器(有挂方法)九分钟辅助!丽水都莱辅助工具试用,确...
第一分钟辅助!蛮王辅助器,好像... 第一分钟辅助!蛮王辅助器,好像是有辅助方法(有挂教学)1、首先打开蛮王辅助器辅助器下载最新版本,在蛮...
第六分钟辅助!潮汕汇挂,一贯真... 第六分钟辅助!潮汕汇挂,一贯真的是有辅助插件(有挂辅助)1、这是跨平台的潮汕汇挂轻量版有透视,在线的...
六分钟辅助!微信开心泉州辅助器... 六分钟辅助!微信开心泉州辅助器,一直有辅助器(有挂教学)1、下载好微信开心泉州辅助器透视辅助下载之后...
第3分钟辅助!佛手十三道破解版... 第3分钟辅助!佛手十三道破解版安卓,竟然真的有辅助攻略(有挂存在)1、让任何用户在无需佛手十三道破解...
2分钟辅助!sohoo竞技联盟... 2分钟辅助!sohoo竞技联盟辅助,切实真的有辅助脚本(有挂技术)1.sohoo竞技联盟辅助 选牌创...
第8分钟辅助!心悦手游辅助器,... 第8分钟辅助!心悦手游辅助器,原来真的是有辅助技巧(确实有挂);1、每一步都需要思考,不同水平的挑战...
第十分钟辅助!广东雀神祈福真的... 第十分钟辅助!广东雀神祈福真的有用吗,都是是有辅助技巧(有挂方略)1、下载好广东雀神祈福真的有用吗透...