请问flink写入kafka 报错 Failed to send data to Kafka: Failed to allocate memory within the configured max blocking time 60000 ms.
参数如下
request.timeout.ms=700000
batch.size=10
linger.ms=50
connections.max.idle.ms=700000
linger.ms=100
max.request.size=1048576
retries=5
timeout.ms=600000
topic查看详情是正常的,在控制台可以生产和消费
这个问题有人遇见过吗?
这个错误信息通常表示 Flink 在尝试将数据发送到 Kafka 时遇到了内存问题。这可能是由于 Flink 分配给 Kafka 客户端的内存不足导致的。
首先,请确保您的 Flink 任务管理器有足够的内存来执行此操作。您可以通过调整 taskmanager.memory.hard-limit
和 taskmanager.memory.process-local-directories
这两个参数来实现这一点。
其次,请检查 Kafka 的配置参数,特别是 fetch.max.bytes
和 receive.buffer.bytes
,以确保它们允许从 Flink 接收足够的数据。
最后,您可以尝试增加 Kafka 客户端的内存限制,通过设置以下环境变量:
-D org.apache.kafka.common.utils.KafkaCapacityController.clientSideLimit=209715200
这将将 Kafka 客户端的最大内存限制设置为 200 MB。请注意,这可能会影响其他使用 Kafka 的应用程序,因此需要谨慎使用。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。