我想配置kafka connect以将最多可能的记录写入hdfs(我每天需要写入大约100b记录,每条记录大约为1.2kb)。
我有Kafka服务器与256gb内存。
我正在尝试配置以下设置:
flush.size=305000
tasks.max=215
Kafka的主题有215个分区。在这种情况下,我得到了一个例外:
java堆空间outofmemoryexception
以及:
flush.size=305000
tasks.max=10
对于带有10个分区的kafka主题,这可以很好地工作,但是在10分钟内只能写大约40-50米的记录,在这种配置下,我有非常大的延迟(大约1.5亿)。
如何计算kafka connect的最大配置?
谢谢。
1条答案
按热度按时间xoefb8l81#
如果没有将java堆大小设置为大于默认值,那么kafka服务器ram的大小无关紧要。
这同样适用于Kafka连接。。。这将有助于避免错误
如果您有10个分区,那么您将希望在分布式模式下运行10个任务,而不是单独运行。这将扩展消费进程,如果您想让它运行得更快,可以在10台不同的机器上运行它(或者在一些机器上使用docker容器)
据我所知,计算给定刷新中可获得的最大消息量的唯一方法是使用jmx监视connect进程来监视已使用的堆空间。但是,在10个分区中,每天100b的记录是很多的,您可能需要增加这个值