# ■ はじめに
小ネタ。 FlinkでParameterTool ってのをしったのでメモ。
目次
【1】ParameterTool 【2】パラメータの取得方法 【3】パラメータの使用方法 【4】sbt run による引数設定の仕方 【5】サンプル
【1】ParameterTool
* Flink が用意しているコマンドライン引数などの パラメータに関するUtilクラス => org.apache.flink.api.java.utils.ParameterTool
【2】パラメータの取得方法
* コマンドライン引数以外でも使い道があるみたい
[1] コマンドライン引数
http://mogile.web.fc2.com/flink/flink-docs-release-1.5/dev/best_practices.html#from-the-command-line-arguments
import org.apache.flink.api.java.utils.ParameterTool object Job { def main(args: Array[String]): Unit = { val parameter = ParameterTool.fromArgs(args)
[2] .properties ファイル
http://mogile.web.fc2.com/flink/flink-docs-release-1.5/dev/best_practices.html#from-properties-files
val propertiesFilePath = "/home/sam/flink/myjob.properties" val parameter = ParameterTool.fromPropertiesFile(propertiesFilePath)
[3] システムプロパティ
val parameter = ParameterTool.fromSystemProperties()
【3】パラメータの使用方法
val parameters = // ... val input = parameter.getRequired("input") val output = parameter.get("output", "myDefaultValue") val expectedCount = parameter.getLong("expectedCount", -1L) val number = parameter.getNumberOfParameters()
【4】sbt run による引数設定の仕方
* 滅茶苦茶ハマった、、、 => 以下の関連記事にも分冊した
https://dk521123.hatenablog.com/entry/2023/08/21/000000
構文
sbt "run --<Key1> <Value1> ..."
【5】サンプル
package dk.com import org.apache.flink.api.scala._ import org.apache.flink.api.java.utils.ParameterTool object Job { def main(args: Array[String]): Unit = { val parameter = ParameterTool.fromArgs(args) println(s"number = ${parameter.getNumberOfParameters}") val output = parameter.get("output", "DefaultValue"); println(s"output = ${output}") val intValue = parameter.getInt("intValue") println(s"intValue=${intValue}") } }
コマンド例
sbt "run --output Hello --intValue 100" ・・・ [info] number = 2 [info] output = Hello [info] intValue=100
関連記事
Apache Flink ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/03/05/235755
Apache Flink ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/03/01/235100
Apache Flink ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/29/000000
Apache Flink ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/07/23/161621
SBT ~ 引数設定の仕方 ~
https://dk521123.hatenablog.com/entry/2023/08/21/000000