flink pg stream cdc 2.3版本, pgoutput插件的,为啥老是偶发这个错误?

flink pg stream cdc 2.3版本, pgoutput插件的,老是偶发这个错误,本地又复现不了这个问题,部署到yarn上,对pg表更新数据 ,为什么? 图片.png

展开
收起
wenti 2023-01-29 17:33:13 221 分享 版权
1 条回答
写回答
取消 提交回答
  • 根据您提供的错误消息:

    Caused by: org.postgresql.util.PSQLException: ERROR: invalid memory alloc request size 138319752
    这是由于 PostgreSQL 中的内存分配问题造成的。当 PostgreSQL 尝试分配超过可用内存的内存时,就会发生这种情况。

    在您的情况下,此错误可能是由以下原因引起的:

    Flink 任务的并行度过高:每个 Flink 任务都会创建一个 PostgreSQL 连接。如果并行度过高,则可能会导致 PostgreSQL 出现内存不足。
    PostgreSQL 配置不当:PostgreSQL 的 shared_buffers 和 max_connections 等配置可能会影响内存使用情况。
    其他应用程序正在使用 PostgreSQL:如果您还有其他应用程序同时访问 PostgreSQL,则它们可能会消耗可用内存。
    解决此问题的步骤如下:

    1. 降低 Flink 任务的并行度

    将 Flink 任务的并行度降低到与可用 PostgreSQL 连接数相匹配的程度。您可以通过以下方式设置并行度:

    -- Java
    env.setParallelism(4);

    -- Scala
    env.setParallelism(4)

    1. 调整 PostgreSQL 配置

    增加 PostgreSQL 的 shared_buffers 和 max_connections 配置。以下是一些建议的值:

    shared_buffers: PostgreSQL 可用内存的 25-50%
    max_connections: 并行度 + 10

    1. 检查其他应用程序

    确保没有其他应用程序正在使用 PostgreSQL 并消耗大量内存。

    1. 升级 PostgreSQL 版本

    PostgreSQL 的较新版本可能已经修复了导致此问题的错误。尝试升级到最新版本。

    1. 联系 PostgreSQL 支持

    如果您已尝试上述所有步骤但问题仍然存在,则可以联系 PostgreSQL 支持以获取进一步的帮助。

    请注意,此错误也可能是由其他因素(例如网络问题)引起的。如果上述步骤无法解决问题,请尝试调查其他潜在原因。

    2024-02-23 15:25:25
    赞同 展开评论

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

收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
还有其他疑问?
咨询AI助理