处理大量数据时,flink日志丢失

时间:2017-07-18 10:02:32

标签: apache-flink

我正在测试flink处理不同数据量的性能,所以我需要Job Runtime来记录和分析。

当我使用flink处理像一万条记录这样的小数据集时,我可以得到如下的Job Runtime日志。

07/18/2017 17:41:47 DataSink (collect())(1/1) switched to FINISHED
07/18/2017 17:41:47 Job execution switched to status FINISHED.
Program execution finished
Job with JobID 3f7658725aaae8cd3427d2aad921f2ef has finished.
Job Runtime: 1124 ms
Accumulator Results:
- c28953fb854da74d18dc7c168b988ca2 (java.util.ArrayList) [15433 elements]

但是当我使用flink来处理像五十万条记录这样大一点的数据集时,我无法得到Job Runtime信息,如下所示,并且shell被卡住了:

07/18/2017 17:49:33 DataSink (collect())(1/1) switched to FINISHED
07/18/2017 17:49:33 Job execution switched to status FINISHED.

我需要修改哪些配置?

为什么在数据集较大时shell会卡住?

希望有人能回答我的疑惑。谢谢〜

1 个答案:

答案 0 :(得分:0)

Flink使用Akka进行远程通信,累加器结果作为单个消息发送回客户端。 Akka强加了最大的邮件大小,你可能达到了极限。一些建议:

  1. 检查JobManager日志,查找与Akka相关的错误消息。
  2. 通过Flink配置增加最大尺寸,例如: akka.framesize。有关详细信息,请参阅Flink documentation