My S3 connector (config below) is failing due to java.lang.OutOfMemoryError.
As far as I understand from different posts (e.g. here) the memory allocation is about (s3 part size) * (#kafka partitions) * (#partitions created by the partitioner).
I'm reading from a 60 partitions topic and my partitioner can create dozens of partitions and the minimum s3.part.size is 5 MB (enforced by the connector, I would be satisfied with 5%).
Does this mean i cannot go with less than 60 * 5 * 50 = 15000 MB of heap size ? and this is just for this connector ?
Is there other configuration that can help me reduce the allocated memory ?
Connector config:
{
"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"
}
}