问答

使用FlinkSQL查询MySQL写入Greenplum, 出现Java heap space问题

作者:admin 2021-05-06 我要评论

环境是本机用docker部署的1.11.2版flink集群,就一个task manager。 尝试在SQL Client里查一张50w数据的mysql表并写入GP,结果task manager报Java heap space异...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

环境是本机用docker部署的1.11.2版flink集群,就一个task manager。
尝试在SQL Client里查一张50w数据的mysql表并写入GP,结果task manager报Java heap space异常。似乎是select的数据量太大,导致频繁GC。
试过配置scan.fetch-size和lookup.cache.max-rows,没有效果。请问有什么办法能避免呢?
Task manager报错信息如下:

java.lang.IllegalArgumentException: open() failed.Java heap space
at org.apache.flink.connector.jdbc.table.JdbcRowDataInputFormat.open(JdbcRowDataInputFormat.java:209) ~[flink-connector-jdbc_2.12-1.11.2.jar:1.11.2]
at org.apache.flink.streaming.api.functions.source.InputFormatSourceFunction.run(InputFormatSourceFunction.java:85) ~[flink-dist_2.12-1.11.2.jar:1.11.2]
at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:100) ~[flink-dist_2.12-1.11.2.jar:1.11.2]

at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:63) ~[flink-dist_2.12-1.11.2.jar:1.11.2]
at org.apache.flink.streaming.runtime.tasks.SourceStreamTask$LegacySourceFunctionThread.run(SourceStreamTask.java:213) ~[flink-dist_2.12-1.11.2.jar:1.11.2]
Caused by: java.sql.SQLException: Java heap space
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[flink-sql-connector-mysql-cdc-1.0.0.jar:1.0.0]
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[flink-sql-connector-mysql-cdc-1.0.0.jar:1.0.0]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[flink-sql-connector-mysql-cdc-1.0.0.jar:1.0.0]
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:955) ~[flink-sql-connector-mysql-cdc-1.0.0.jar:1.0.0]
at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1005) ~[flink-sql-connector-mysql-cdc-1.0.0.jar:1.0.0]
at org.apache.flink.connector.jdbc.table.JdbcRowDataInputFormat.open(JdbcRowDataInputFormat.java:206) ~[flink-connector-jdbc_2.12-1.11.2.jar:1.11.2]

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 使用FlinkSQL查询MySQL写入Greenplum,

    使用FlinkSQL查询MySQL写入Greenplum,

  • .env.development配置的问题

    .env.development配置的问题

  • antd form表单触发校验

    antd form表单触发校验

  • 在react的子组件中,如何获取父组件的t

    在react的子组件中,如何获取父组件的t

腾讯云代理商
海外云服务器