イベントを保存するためにflumeとS3を使用しています。HDFS シンクが次のファイルにロールするか、flume が正常にシャットダウンされる場合にのみ、イベントが S3 に転送されることを認識しました。
私の考えでは、これは潜在的なデータ損失につながる可能性があります. Flume のドキュメントには次のように書かれています。
...Flume はトランザクション アプローチを使用して、イベントの信頼できる配信を保証します...
ここに私の設定:
agent.sinks.defaultSink.type = HDFSEventSink
agent.sinks.defaultSink.hdfs.fileType = DataStream
agent.sinks.defaultSink.channel = fileChannel
agent.sinks.defaultSink.serializer = avro_event
agent.sinks.defaultSink.serializer.compressionCodec = snappy
agent.sinks.defaultSink.hdfs.path = s3n://testS3Bucket/%Y/%m/%d
agent.sinks.defaultSink.hdfs.filePrefix = events
agent.sinks.defaultSink.hdfs.rollInterval = 3600
agent.sinks.defaultSink.hdfs.rollCount = 0
agent.sinks.defaultSink.hdfs.rollSize = 262144000
agent.sinks.defaultSink.hdfs.batchSize = 10000
agent.sinks.defaultSink.hdfs.useLocalTimeStamp = true
#### CHANNELS ####
agent.channels.fileChannel.type = file
agent.channels.fileChannel.capacity = 1000000
agent.channels.fileChannel.transactionCapacity = 10000
何か間違ったことをしただけだと思いますが、何かアイデアはありますか?