为什么我的kafka tmp文件夹的大小几乎与磁盘大小相同?

vs91vp4v  于 2021-06-05  发布在  Kafka
关注(0)|答案(1)|浏览(413)

我开发了生产Kafka的环境:3个zk服务器,3个Kafka代理和两个Kafka连接。我把我的tmp文件和我的kafka主文件夹放在一起。我在远程ubuntu环境中运行它,但不在docker中运行。
当我操作我的Kafka操作时,我遇到了一个错误,它告诉我的磁盘消耗太多。我检查我的kafka tmp文件夹的大小几乎是我磁盘大小的2/3,这关闭了我的kafka集群。
我检查了每个Kafka日志文件夹,发现:
25 connect_offset 来自1号工人,每人21mb
25 connect_offset2 来自2号工人,每人21mb
25 connect_status 来自1号工人,每人21mb
25 connect_status2 来自2号工人,每人21mb
50 __consumer_offset 来自两个工人@每个工人21mb
每个主题的主题偏移量@21mb,我有2个主题,所以我有6个主题偏移量
问题是uu consumer\u offset的数量比另一个偏移量消耗更多磁盘,我的kafka\u配置无法处理它。这是我的Kafka配置示例:

broker.id=101
port=9099
listeners=PLAINTEXT://0.0.0.0:9099
advertised.listeners=PLAINTEXT://127.0.0.1:9099
num.partitions=3
offsets.topic.replication.factor=3
log.dir=/home/xxx/tmp/kafka_log1
log.cleaner.enable=true
log.cleanup.policy=delete
log.retention.bytes=1073741824
log.segment.bytes=1073741824
log.retention.check.interval.ms=60000
message.max.bytes=1073741824
zookeeper.connect=xxx:2185,xxx:2186,xxx:2187
zookeeper.connection.timeout.ms=7200000
session.time.out.ms=30000
delete.topic.enable=true

对于每个主题,这是配置:

kafka-topics.sh -create --zookeeper xxx:2185,xxx:216,xxx:2187 --replication-factor 3 --partitions 3 --topic $topic_name --config cleanup.policy=delete --config retention.ms=86400000 --config min.insync.replicas=2 --config compression.type=gzip

连接配置如下(除了端口和偏移量以及状态配置之外,连接配置共享相同的配置):

bootstrap.servers=XXX:9099,XXX:9098,XXX:9097
group.id=XXX
key.converter.schemas.enable=true
value.converter.schemas.enable=true
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
offset.storage.topic=connect-offsets
offset.storage.replication.factor=3
config.storage.topic=connect-configs
config.storage.replication.factor=3
status.storage.topic=connect-status
status.storage.replication.factor=3
offset.flush.timeout.ms=300000
rest.host.name=xxx
rest.port=8090
connector.client.config.override.policy=All
producer.max.request.size=1073741824
producer.ack=all
producer.enable.idempotence=true
consumer.max.partition.fetch.bytes=1073741824
consumer.auto.offset.reset=latest
consumer.enable.auto.commit=true
consumer.max.poll.interval.ms=5000000
plugin.path=/xxx/connectors

很明显,根据一些文档,kafka不需要很大的磁盘空间(记录的最大tmp是36gb)。

pbwdgjma

pbwdgjma1#

你说“@21MB”是什么意思?你的 log.segment.bytes 设置为1gb。。。
首先,不要使用 /tmp 永久性存储。不要使用 /home 用于服务器数据。始终为服务器数据和数据使用单独的分区/磁盘 /var + /var/logs .
第二,有两个连接集群。使用相同的3个主题和相同的 group.id ,那么您就有了一个分布式集群,这样您就不必再拥有3个额外的主题了。
最后,
\uu consumer\u offset的数量比另一个offset消耗更多磁盘
嗯,是的。所有的消费群体都将他们的补偿存储在那里。这将是最大的内部主题,到目前为止,取决于您的 offsets.retention.minutes Kafka不需要很大的磁盘空间
当你刚开始的时候,它不起作用。
我见过存储容量高达数百tb的群集
如果你观看大型公司的Kafka峰会演讲,他们每秒发送gb的事件(参考netflix、spotify、uber等)

Kafka在制作中

Apache
汇合

相关问题