apache-kafka - kafka connect S3连接器内存分配
问题描述
由于 java.lang.OutOfMemoryError,我的 S3 连接器(如下配置)失败。
据我从不同的帖子(例如这里)了解到,内存分配大约是(s3 部分大小)*(#kafka 分区)*(由分区程序创建的#partitions)。
我正在阅读 60 个分区主题,我的分区程序可以创建几十个分区,最小 s3.part.size 为 5 MB(由连接器强制执行,我会对 5% 感到满意)。
这是否意味着我不能使用小于 60 * 5 * 50 = 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"
}
}
解决方案
推荐阅读
- c# - 无法在此范围内声明,因为该名称在封闭的本地范围内使用
- webpack - 在 npm run dev 期间收到 webpack 警告并在 Next.js 中首次加载
- sql - SQL Server:执行计划解释
- sql - SQL - SFW,在哪里使用 IN
- javascript - 单击按钮时,工具提示的文本如何变化?
- arrays - 计算数据集中无效/不正确的数据
- asp.net - 从 RCL 访问服务器上的静态文件
- firebase - 如何从 Firestore 获取文档 ID
- jquery - 如何清除 Classic ASP 或 jQuery 中的特定 Request.Form 值?
- typescript - 打字稿:类型问题的关键