由于java.lang.outofmemoryerror,我的s3连接器(下面的配置)失败。
据我从不同的文章(例如这里)了解,内存分配大约是(s3部分大小)(#kafka分区)(#分区器创建的分区)。
我正在阅读一个60个分区的主题,我的分区程序可以创建几十个分区,最小的s3.part.size是5 mb(由连接器强制执行,我会满意5%)。
这是否意味着我不能使用小于60550=15000 mb的堆大小?这只是为了这个连接器?
有没有其他配置可以帮助我减少分配的内存?
连接器配置:
{
"name": "test-processed-to-fake-dlk-6",
"config": {
"name": "test-processed-to-fake-dlk-6",
"connector.class": "io.confluent.connect.s3.S3SinkConnector",
"s3.region": "us-east-1",
"topics.dir": "",
"flush.size": "400",
"schema.compatibility": "NONE",
"tasks.max": "1",
"topics": "raw-events-dev",
"s3.part.size": "5242880",
"timezone": "UTC",
"format.class": "io.confluent.connect.s3.format.json.JsonFormat",
"partitioner.class": "io.confluent.connect.storage.partitioner.DefaultPartitioner",
"schema.generator.class": "io.confluent.connect.storage.hive.schema.DefaultSchemaGenerator",
"value.converter": "com.naturalint.kafka.connect.storage.SafeJsonConverter",
"storage.class": "io.confluent.connect.s3.storage.S3Storage",
"s3.bucket.name": "eventstestkinesis",
"rotate.schedule.interval.ms": "60000"
}
}
1条答案
按热度按时间gcxthw6b1#
在此基础上对内存分配和分区数优化进行了说明。
我的主题吞吐量小于1mb/s,所以60个分区看起来像是一个巨大的过度消耗。
我将分区的数量减少到6个,现在情况看起来很稳定。