【发布时间】:2017-09-08 14:15:26
【问题描述】:
我正在尝试使用 flume 从本地系统移动 hdfs 中的文件,但是当我运行我的 flume 时,它会创建许多小文件。我的原始文件大小为 154 - 500Kb,但在我的 HDFS 中,它创建了许多大小为 4-5kb 的文件。我搜索并知道更改 rollSize 和 rollCount 会起作用,我增加了值,但仍然发生同样的问题。我也遇到了错误。
错误:
ERROR hdfs.BucketWriter: Hit max Continuous under-replication 旋转 (30);由于以下原因,将不会继续在此路径下滚动文件 复制不足
当我在集群中工作时,我有点害怕在 hdfs-site.xml 中进行更改。请建议我如何在 HDFS 中移动原始文件或使小文件更大(而不是 4-5kb 使其变为 50-60kb)。
下面是我的配置。
配置:
agent1.sources = source1
agent1.sinks = sink1
agent1.channels = channel1
agent1.sources.source1.channels = channel1
agent1.sinks.sink1.channel = channel1
agent1.sources.source1.type = spooldir
agent1.sources.source1.spoolDir = /root/Downloads/CD/parsedCD
agent1.sources.source1.deletePolicy = immediate
agent1.sources.source1.basenameHeader = true
agent1.sinks.sink1.type = hdfs
agent1.sinks.sink1.hdfs.path = /user/cloudera/flumecd
agent1.sinks.sink1.hdfs.fileType = DataStream
agent1.sinks.sink1.hdfs.filePrefix = %{basename}
agent1.sinks.sink1.hdfs.rollInterval = 0
agent1.sinks.sink1.hdfs.batchsize= 1000
agent1.sinks.sink1.hdfs.rollSize= 1000000
agent1.sinks.sink1.hdfs.rollCount= 0
agent1.channels.channel1.type = memory
agent1.channels.channel1.maxFileSize =900000000
【问题讨论】: