我想将pureconfig与apache flink一起使用。
如何在启动作业时传递其他java属性?
我试着通过: -yD env.java.opts="-Dconfig.file='config/jobs/twitter-analysis.conf'"
但不被接受:
https://github.com/geoheil/streaming-reference/blob/5-basic-flink-setup/makefile#l21
flink run --class com.github.geoheil.streamingreference.tweets.TweetsAnalysis \
"usecases/tweets/build/libs/tweets_${SCALA_VERSION}-${VERSION}-all.jar"
-yd env.java.opts=“-dconfig.file='config/jobs/twitter analysis.conf'”
而主类在尝试从配置文件示例化配置时失败。
请注意,完整的参考资料可在https://github.com/geoheil/streaming-reference. 您可以通过以下方式再现上述错误:
git clone git@github.com:geoHeil/streaming-reference.git
cd streaming-reference
git checkout 5-basic-flink-setup
make run-local-Tweets
应该看到以下例外情况:
ConfigurationException: Failed to start. There is a problem with the configuration: ConfigReaderFailures(ConvertFailure(KeyNotFound(foo,Set()),None,),List())
在spark中,此属性称为: extraJavaOptions
.
编辑
i、 例如,我尝试使用flink的方法:如何将额外的jvm选项传递给taskmanager和jobmanager,但到目前为止,它对flink的当前版本(1.10.1)不起作用
这个属性相当于 spark.driver.extraJavaOptions
在Apache星火。我相信,这需要交给工作经理。
如果我看了文件 -yD
,只对Yarn有效。但我也需要一些在当地也能起作用的东西。
其他相关文章:
http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/how-can-i-pass-multiple-java-options-in-standalone-mode-td29354.html
1条答案
按热度按时间bqujaahr1#
从邮件列表中复制答案。
如果您为多个作业重用集群,则它们需要共享
JVM_ARGS
因为这是同样的过程[1] 在spark上,每个阶段都会产生新的进程。但是,当前的建议是每个作业/应用程序只使用一个临时集群(这更接近spark的工作方式)。因此,如果您使用yarn,每个作业/应用程序都会生成一个新的集群,其大小正好适合它。然后,您可以提供新的参数提交新的Yarn与
但是,请确保路径可以从您的yarn集群中访问,因为驱动程序可能是在集群上执行的(不是100%确定)。
若要将文件添加到部署,请使用
如果您想在共享集群上进行每作业级别的配置,我建议您使用普通参数并手动初始化pureconfig(还没有使用它,所以不确定如何使用)。然后,您可能会如下调用您的程序。
对于本地执行,我在配置它时也遇到了一些问题(用您的代码进行了尝试)。问题是,当您的代码直接在cli中执行时,我们以前尝试的所有参数都只传递给新生成的进程。