开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

请问flink写入kafka 报错 在控制台可以生产和消费 这个问题有人遇见过吗?

请问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查看详情是正常的,在控制台可以生产和消费

这个问题有人遇见过吗?

展开
收起
真的很搞笑 2023-10-30 19:19:46 95 0
1 条回答
写回答
取消 提交回答
  • 这个错误信息通常表示 Flink 在尝试将数据发送到 Kafka 时遇到了内存问题。这可能是由于 Flink 分配给 Kafka 客户端的内存不足导致的。

    首先,请确保您的 Flink 任务管理器有足够的内存来执行此操作。您可以通过调整 taskmanager.memory.hard-limittaskmanager.memory.process-local-directories 这两个参数来实现这一点。

    其次,请检查 Kafka 的配置参数,特别是 fetch.max.bytesreceive.buffer.bytes,以确保它们允许从 Flink 接收足够的数据。

    最后,您可以尝试增加 Kafka 客户端的内存限制,通过设置以下环境变量:

    -D org.apache.kafka.common.utils.KafkaCapacityController.clientSideLimit=209715200
    

    这将将 Kafka 客户端的最大内存限制设置为 200 MB。请注意,这可能会影响其他使用 Kafka 的应用程序,因此需要谨慎使用。

    2023-10-31 14:46:06
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析 立即下载
    MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute 立即下载
    消息队列kafka介绍 立即下载