hi,
感谢大神的回复。看了下是因为我执行的SQL作业,有多个sink,在执行TableEnvironment.executeSQL时,Flink提交了多个job,在本地执行时貌似就走到了这个异常。我将多sink修改为TableEnvironment.createStatementSet来提交,就没有这个问题了。谢谢回复。

















在 2020-07-13 13:51:55,"Xintong Song" <[email protected]> 写道:
>Local execution 模式下,Flink 是无法实际控制 JVM 的 Xmx, Xms, MaxDirectMemorySize
>等参数的,这些参数取决于你的 IDE 设置。
>检查一下 idea 的 run configuration 是否有配置过 -XX:MaxDirectMemorySize。
>
>Thank you~
>
>Xintong Song
>
>
>
>On Sat, Jul 11, 2020 at 3:48 PM Congxian Qiu <[email protected]> wrote:
>
>> Hi
>>
>> 这个问题可以看下是否和 releasenote[1] 中 memory configuration
>> 相关的修改有关,具体到这个错误,你可以按照提示增加一些内存看看
>>
>> [1]
>>
>> https://flink.apache.org/news/2020/07/06/release-1.11.0.html#other-improvements
>> Best,
>> Congxian
>>
>>
>> sunfulin <[email protected]> 于2020年7月10日周五 下午11:32写道:
>>
>> > hi,
>> >
>> >
>> 我在使用1.11版本在本地idea起一个作业时,并发为1,抛出了如下关于内存的异常。。问题是之前从来没有显示配置过taskmanager的memory参数,这是为何?
>> > 感觉由1.10升级到1.11问题还是挺多的。。我尝试增加了JVM参数,增加DirectMemory内存配置,还是没有作用,请教大神帮忙看下。
>> >
>> >
>> > Exception in thread "main" java.lang.OutOfMemoryError: Could not allocate
>> > enough memory segments for NetworkBufferPool (required (Mb): 64,
>> allocated
>> > (Mb): 63, missing (Mb): 1). Cause: Direct buffer memory. The direct
>> > out-of-memory error has occurred. This can mean two things: either job(s)
>> > require(s) a larger size of JVM direct memory or there is a direct memory
>> > leak. The direct memory can be allocated by user code or some of its
>> > dependencies. In this case 'taskmanager.memory.task.off-heap.size'
>> > configuration option should be increased. Flink framework and its
>> > dependencies also consume the direct memory, mostly for network
>> > communication. The most of network memory is managed by Flink and should
>> > not result in out-of-memory error. In certain special cases, in
>> particular
>> > for jobs with high parallelism, the framework may require more direct
>> > memory which is not managed by Flink. In this case
>> > 'taskmanager.memory.framework.off-heap.size' configuration option should
>> be
>> > increased. If the error persists then there is probably a direct memory
>> > leak in user code or some of its dependencies which has to be
>> investigated
>> > and fixed. The task executor has to be shutdown...
>>

回复