gpt4 book ai didi

java - 当事件数等于或超过 batchSize 时,为什么 Flume-NG HDFS sink 不写入文件?

转载 作者:可可西里 更新时间:2023-11-01 14:24:08 25 4
gpt4 key购买 nike

我正在尝试配置 Flume,以便日志每小时滚动一次或在它们达到 HDFS 的默认 block 大小时 (64 MB)。以下是我当前的配置:

imp-agent.channels.imp-ch1.type = memory
imp-agent.channels.imp-ch1.capacity = 40000
imp-agent.channels.imp-ch1.transactionCapacity = 1000

imp-agent.sources.avro-imp-source1.channels = imp-ch1
imp-agent.sources.avro-imp-source1.type = avro
imp-agent.sources.avro-imp-source1.bind = 0.0.0.0
imp-agent.sources.avro-imp-source1.port = 41414

imp-agent.sources.avro-imp-source1.interceptors = host1 timestamp1
imp-agent.sources.avro-imp-source1.interceptors.host1.type = host
imp-agent.sources.avro-imp-source1.interceptors.host1.useIP = false
imp-agent.sources.avro-imp-source1.interceptors.timestamp1.type = timestamp

imp-agent.sinks.hdfs-imp-sink1.channel = imp-ch1
imp-agent.sinks.hdfs-imp-sink1.type = hdfs
imp-agent.sinks.hdfs-imp-sink1.hdfs.path = hdfs://mynamenode:8020/flume/impressions/yr=%Y/mo=%m/d=%d/logger=%{host}s1/
imp-agent.sinks.hdfs-imp-sink1.hdfs.filePrefix = Impr
imp-agent.sinks.hdfs-imp-sink1.hdfs.batchSize = 10
imp-agent.sinks.hdfs-imp-sink1.hdfs.rollInterval = 3600
imp-agent.sinks.hdfs-imp-sink1.hdfs.rollCount = 0
imp-agent.sinks.hdfs-imp-sink1.hdfs.rollSize = 66584576

imp-agent.channels = imp-ch1
imp-agent.sources = avro-imp-source1
imp-agent.sinks = hdfs-imp-sink1

我对上述配置的意图是以 10 个为一组写入 HDFS,然后将正在写入的文件滚动到每小时。我看到的是,所有数据似乎都保存在内存中,直到我低于 64MB,直到文件在 1 小时后滚动。是否有任何我应该调整的设置以获得我想要的行为?

最佳答案

自己回答,Flume 是把数据批量写入HDFS。文件长度被报告为打开,因为正在写入一个 block 。

关于java - 当事件数等于或超过 batchSize 时,为什么 Flume-NG HDFS sink 不写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16548358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com