【问题标题】:S3 Flume HDFS SINK CompressionS3 Flume HDFS SINK 压缩
【发布时间】:2015-05-20 03:46:35
【问题描述】:

我正在尝试在 Amaozn S3 中编写水槽事件。在 S3 中编写的事件是压缩格式的。我的 Flume 配置如下。我正面临数据丢失。根据下面给出的配置,如果我发布 20000 个事件,我只会收到 1000 个事件,并且所有其他数据都会丢失。但是当我禁用 rollcount、rollSize 和 rollInterval 配置时,所有的事件都会被接收到,但是会创建 2000 个小文件。我的配置设置有什么问题吗?我应该添加任何其他配置吗?

injector.sinks.s3_3store.type = hdfs
injector.sinks.s3_3store.channel = disk_backed4
injector.sinks.s3_3store.hdfs.fileType = CompressedStream
injector.sinks.s3_3store.hdfs.codeC = gzip
injector.sinks.s3_3store.hdfs.serializer = TEXT
injector.sinks.s3_3store.hdfs.path = s3n://CID:SecretKey@bucketName/dth=%Y-%m-%d-%H
injector.sinks.s3_1store.hdfs.filePrefix = events-%{receiver}
# Roll when files reach 256M or after 10m, whichever comes first
injector.sinks.s3_3store.hdfs.rollCount = 0
injector.sinks.s3_3store.hdfs.idleTimeout = 600
injector.sinks.s3_3store.hdfs.rollSize = 268435456
#injector.sinks.s3_3store.hdfs.rollInterval = 3600
# Flush data to buckets every 1k events
injector.sinks.s3_3store.hdfs.batchSize = 10000

【问题讨论】:

    标签: hadoop amazon-s3 flume-ng


    【解决方案1】:

    对于初学者:如果您禁用 rollCount、rollSize 等设置,flume 将恢复为默认值,因此您收到的小文件是默认值。

    相关方面是这样的:

    injector.sinks.s3_3store.hdfs.batchSize = 10000
    

    它基本上告诉您的接收器在刷新之前收集 10.000 个事件。如果你减少这个数量,你也会得到更小的文件,因为与常规 HDFS 相比,S3 不支持文件追加。刷新后,文件将被关闭并创建一个新文件。

    尝试确定您的接收器将在几分钟左右的短时间内收到多少事件,并将该值设置为您的批量大小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-27
      • 2019-08-31
      • 1970-01-01
      相关资源
      最近更新 更多