kafka-connect-jdbc 源连接器 OOM
kafka-connect-jdbc source connector OOM
我正在使用 kafka-connect-jdbc:5.3.1,当我是 运行 连接器时,它会将我踢出异常:java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Thread-11"
我已经尝试将堆 space 增加到 4gb 但仍然失败。 EC2实例类型为t2.large,记录数最多为400万条。
我的 属性 文件看起来像
name=jdbc_source_postgres
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
key.converter=org.apache.kafka.connect.storage.StringConverter
key.converter.schemas.enable=false
value.converter=org.apache.kafka.connect.json.JsonConverter
value.converter.schemas.enable=false
connection.url=jdbc:postgresql:/localhost:5432/demo?user=********&password=*******&defaultFetchSize=10000&useCursorFetch=true
tasks.max=10
table.types=TABLE
table.whitelist=sample_table
mode=timestamp
timestamp.column.name=last_modified
validate.non.null=false
batch.max.rows=100
topic.prefix=kafka02-
poll.interval.ms=3600
我 运行 这个连接器通过 EC2 上的 Docker 容器,我的 docker 文件看起来像这样
version: "3"
services:
connect:
image: kafka-connect:latest
ports:
- 80:8083
network_mode: host
volumes:
- .:/src:cached
environment:
CONNECT_REST_PORT: 8083
CONNECT_PLUGIN_PATH: "/usr/share/java"
CLASSPATH: /usr/share/java/monitoring-interceptors/monitoring-interceptors-5.3.0.jar
CONNECT_GROUP_ID: "connect"
CONNECT_CONFIG_STORAGE_TOPIC: connect-configs
CONNECT_OFFSET_STORAGE_TOPIC: connect-offsets
CONNECT_STATUS_STORAGE_TOPIC: connect-status
CONNECT_KAFKA_HEAP_OPTS: "-Xms256M -Xmx8G"
CONNECT_BOOTSTRAP_SERVERS: localhost:9092
command: connect-standalone /src/connect-standalone.properties /src/connectors/kafka-source.properties
我已经尝试了每一种可能的配置调整,但都失败了。任何帮助将不胜感激
属性 不是 CONNECT_KAFKA_HEAP_OPTS
。只是 KAFKA_HEAP_OPTS
请注意,t2.large 本身最大为 8 GB,并且您需要 OS 的开销,因此您不能将 8GB 纯粹分配给 Java 无论如何在容器中处理 运行
旁注,建议不要覆盖独立连接的命令,而是在可能的情况下让任务分布在 Connect worker 集群中
我正在使用 kafka-connect-jdbc:5.3.1,当我是 运行 连接器时,它会将我踢出异常:java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Thread-11"
我已经尝试将堆 space 增加到 4gb 但仍然失败。 EC2实例类型为t2.large,记录数最多为400万条。
我的 属性 文件看起来像
name=jdbc_source_postgres
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
key.converter=org.apache.kafka.connect.storage.StringConverter
key.converter.schemas.enable=false
value.converter=org.apache.kafka.connect.json.JsonConverter
value.converter.schemas.enable=false
connection.url=jdbc:postgresql:/localhost:5432/demo?user=********&password=*******&defaultFetchSize=10000&useCursorFetch=true
tasks.max=10
table.types=TABLE
table.whitelist=sample_table
mode=timestamp
timestamp.column.name=last_modified
validate.non.null=false
batch.max.rows=100
topic.prefix=kafka02-
poll.interval.ms=3600
我 运行 这个连接器通过 EC2 上的 Docker 容器,我的 docker 文件看起来像这样
version: "3"
services:
connect:
image: kafka-connect:latest
ports:
- 80:8083
network_mode: host
volumes:
- .:/src:cached
environment:
CONNECT_REST_PORT: 8083
CONNECT_PLUGIN_PATH: "/usr/share/java"
CLASSPATH: /usr/share/java/monitoring-interceptors/monitoring-interceptors-5.3.0.jar
CONNECT_GROUP_ID: "connect"
CONNECT_CONFIG_STORAGE_TOPIC: connect-configs
CONNECT_OFFSET_STORAGE_TOPIC: connect-offsets
CONNECT_STATUS_STORAGE_TOPIC: connect-status
CONNECT_KAFKA_HEAP_OPTS: "-Xms256M -Xmx8G"
CONNECT_BOOTSTRAP_SERVERS: localhost:9092
command: connect-standalone /src/connect-standalone.properties /src/connectors/kafka-source.properties
我已经尝试了每一种可能的配置调整,但都失败了。任何帮助将不胜感激
属性 不是 CONNECT_KAFKA_HEAP_OPTS
。只是 KAFKA_HEAP_OPTS
请注意,t2.large 本身最大为 8 GB,并且您需要 OS 的开销,因此您不能将 8GB 纯粹分配给 Java 无论如何在容器中处理 运行
旁注,建议不要覆盖独立连接的命令,而是在可能的情况下让任务分布在 Connect worker 集群中