0

Flume のドキュメントによると、イベント サイズ、イベント カウント、または期間に基づいてデータを HDFS に移動できます。ファイル全体をスプール ディレクトリから HDFS に単一のファイルとして移動する方法はありますか

Example 
Spooling Dir             HDFS
file1 - 1000 event ----> file1-1000 event
file2 - 1008 event ----> file2 - 1008 event
file3 - 800 event  ----> file3 - 800 event 

ありがとう。

4

1 に答える 1

0

そうですね。それを反映するように構成を微調整する必要があります。flume はサイズに関係なくファイル全体をプッシュするように設計されていないためです。これを行うには hadoop fs -copyFromLocal をより効果的に使用できます。

設定する必要があるもののリストは次のとおりです。

a) ファイルを散発的にスプールするだけの場合、バッチ チャネルのサイズはファイル内のイベントのサイズよりも小さくする必要があります。そうしないと、イベントがチャネルにスタックしたままになる可能性があります。

b) hdfs.rollSize = 0 を使用して、サイズ制限後にファイルがロールオーバーされないようにします

c) hdfs.rollCount = 0 を指定して、イベントが発生した後にファイルがロールオーバーされないようにします。

d) hdfs.rollInterval を適切な量に設定して、ファイルが時間どおりに git にスプールされるようにします。

e) 混同を避けるために、一度に 1 つのファイルをスプールします。

それは基本的にそれです。

于 2015-01-07T13:27:02.410 に答える