Java Flink JobExecutionException:akka.client.timeout

Java Flink JobExecutionException:akka.client.timeout,java,intellij-idea,akka,apache-flink,Java,Intellij Idea,Akka,Apache Flink,我使用的是Flink v.1.4.0 我正在尝试通过IntelliJ使用datasetapi运行作业。请注意,如果我通过flinkui运行相同的作业,则作业运行正常。为了运行作业,我需要首先通过环境变量指定要处理的数据量。当数量相对较小时,作业运行良好。但随着它变得越来越大,我开始出现以下错误: ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the class

我使用的是
Flink v.1.4.0

我正在尝试通过
IntelliJ
使用
datasetapi
运行作业。请注意,如果我通过
flinkui
运行相同的作业,则作业运行正常。为了运行作业,我需要首先通过环境变量指定要处理的数据量。当数量相对较小时,作业运行良好。但随着它变得越来越大,我开始出现以下错误:

ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
31107 [main] ERROR com.company.someLib.SomeClass - Error executing pipeline
org.apache.flink.runtime.client.JobExecutionException: Couldn't retrieve the JobExecutionResult from the JobManager.
at org.apache.flink.runtime.client.JobClient.awaitJobResult(JobClient.java:300)
at org.apache.flink.runtime.client.JobClient.submitJobAndWait(JobClient.java:387)
at org.apache.flink.runtime.minicluster.FlinkMiniCluster.submitJobAndWait(FlinkMiniCluster.scala:565)
at org.apache.flink.runtime.minicluster.FlinkMiniCluster.submitJobAndWait(FlinkMiniCluster.scala:539)
at org.apache.flink.client.LocalExecutor.executePlan(LocalExecutor.java:193)
at org.apache.flink.api.java.LocalEnvironment.execute(LocalEnvironment.java:91)
at com.ubs.digital.comms.graph.emailanalyser.EmailAnalyserPipeline.lambda$runPipeline$1(EmailAnalyserPipeline.java:120)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at com.ubs.digital.comms.graph.emailanalyser.EmailAnalyserPipeline.runPipeline(EmailAnalyserPipeline.java:87)
at com.ubs.digital.comms.graph.emailanalyser.EmailAnalyserPipeline.main(EmailAnalyserPipeline.java:65)
Caused by: org.apache.flink.runtime.client.JobClientActorSubmissionTimeoutException: Job submission to the JobManager timed out. You may increase 'akka.client.timeout' in case the JobManager needs more time to configure and confirm the job submission.
我可以看出,建议是:

You may increase 'akka.client.timeout' in case the JobManager needs more time to configure and confirm the job submission.
但我怀疑问题还不止于此。但是为了到达那里,我需要首先配置
akka.client.timeout
。如何在IntelliJ中执行此操作?超时时间应该是多长


此外,究竟是什么导致了这一现象?我需要增加堆内存还是什么?谢谢。

您可以通过flink配置文件设置此属性。看

因此,在flink-conf.yaml中,您可以添加例如:

akka.client.timeout: 10min

但看起来数据处理的地方不对。您是否可能将数据加载到构造函数中,而不是加载到
映射
运行
函数中?

我能够找到它,而且也不那么困难。我所要做的就是进入
运行>编辑配置
,在
程序参数
字段中的
配置
选项卡下,添加以下内容:

-Dakka.client.timeout:600s
-Dakka.ask.timeout:600s

然而,我应该注意到,这并没有完全解决我面临的问题

尝试升级到flink 1.4.1,并检查升级到1.4.1目前有点棘手,因为许多依赖项需要更改。我正在研究如何“…增加akka的网络堆栈(=远程处理)”,但我不应该增加这样的字段。是不是
akka.framesize
?从1.4.0到1.4.2的更改比从1.3.2升级到1.4.0要轻松得多。根据我的经验。至于超时值,您是否有可以共享的代码示例?我知道对于数据流API(如果您使用Kafka连接器作为源),您可以调整传递给Flinkkafka消费者的属性中的超时。如果您对如何设置源代码有一些了解,我可以提供更好的建议。好的。无论如何,我总有一天会这么做的;肯定有一次发布了一个主要版本(1.5.0),但现在我坚持使用1.4.0。谢谢你的意见。我相信随着升级,这些问题将得到解决。感谢您的回复,但我已经知道这一点。我想知道的是,这是否可以通过IntelliJ实现。当我们将其作为程序参数传递时,设置是否有效?