使用内存通道增加水槽中的文件大小

Posted

技术标签:

【中文标题】使用内存通道增加水槽中的文件大小【英文标题】:Increasing the file size in flume with memory channel 【发布时间】:2015-12-25 02:47:00 【问题描述】:

下面是我的水槽配置文件。即使在更改 rollInterval 和 rollSize 之后,也只有 10 个事件被写入,控制台也显示 rollCount=10 和 events=10。我也尝试将 rollCount 增加到 1000,但输出没有变化。任何人都可以建议增加在 hdfs 中写入的文件大小。下面的conf文件有什么问题?

#naming components 

NetAgent.sources = NetCat_1 NetCat_2
NetAgent.sinks = HDFS
NetAgent.channels = MemChannel


NetAgent.sources.NetCat_1.type = netcat
NetAgent.sources.NetCat_1.bind = localhost
NetAgent.sources.NetCat_1.port = 8671

NetAgent.sources.NetCat_2.type = netcat
NetAgent.sources.NetCat_2.bind = localhost
NetAgent.sources.NetCat_2.port = 8672


NetAgent.sinks.HDFS.type = hdfs
NetAgent.sinks.HDFS.hdfs.path = file path here
NetAgent.sinks.HDFS.hdfs.filePrefix = test
NetAgent.sinks.HDFS.hdfs.rollSize = 67108864
NetAgent.sinks.HDFS.hdfs.rollInterval = 3600
NetAgent.sinks.HDFS.rollCount = 0
NetAgent.sinks.HDFS.hdfs.batchSize = 10000
NetAgent.sinks.HDFS.hdfs.writeFormat = Text
NetAgent.sinks.HDFS.hdfs.fileType = DataStream


NetAgent.channels.MemChannel.type = memory
NetAgent.channels.MemChannel.capacity = 20000
NetAgent.channels.MemChannel.transactionCapacity = 20000


NetAgent.sources.NetCat_1.channels = MemChannel
NetAgent.sources.NetCat_2.channels = MemChannel
NetAgent.sinks.HDFS.channel = MemChannel

控制台记录为

(SinkRunner-PollingRunner-DefaultSinkProcessor) [DEBUg-org.apache.flume.sink.hdfs.BucketWriter.shouldRotate(BucketWriter.java)]
rolling: rollCount: 10, events: 10

the image shows the files written in HDFS

【问题讨论】:

【参考方案1】:

您忘记将 hdfs 添加到 rollCount 配置中。它使用默认值 10,因为它看不到您的配置。请注意,您的 HDFS 配置是:

NetAgent.sinks.HDFS.type = hdfs
NetAgent.sinks.HDFS.hdfs.rollSize = 67108864
NetAgent.sinks.HDFS.hdfs.rollInterval = 3600
NetAgent.sinks.HDFS.rollCount = 0
NetAgent.sinks.HDFS.hdfs.batchSize = 10000
NetAgent.sinks.HDFS.hdfs.writeFormat = Text
NetAgent.sinks.HDFS.hdfs.fileType = DataStream

在rollCount行中,需要为:

NetAgent.sinks.HDFS.hdfs.rollCount = 0

这将覆盖默认的 rollCount,您的 Flume 代理将按照您的意愿行事。

【讨论】:

以上是关于使用内存通道增加水槽中的文件大小的主要内容,如果未能解决你的问题,请参考以下文章

如果我们在不增加文件数量的情况下增加存储在 HDFS 中的文件大小,NameNode 所需的内存是增加还是减少?

如何在 IntelliJ IDEA 上增加内存堆大小?

扩展 R 中的内存大小限制

Centos7使用swap文件增加虚拟内存

managed_mapped_file 是不是能够因分配而增加文件大小?

qt c ++中反序列化地图的大小增加