2016-08-22 16 views
0

私は、HDFS内のファイルを置くためにフリュームspooldirを使用していますが、私はHDFSで非常に多くの小さなファイルを取得しています。私はバッチサイズとロール間隔を使用することを考えましたが、サイズと間隔に依存したくないです。だから私はflume spooldirでファイルを一度に1つずつプッシュすることに決めました。これどうやってするの?flume spooldirにファイルを1つずつ入れる方法は?

答えて

0

あなたがa1.sources.src-1.fileHeader = trueを設定した場合https://flume.apache.org/FlumeUserGuide.html#spooling-directory-sourceによると、その後、あなたはHDFSシンクに(例えばファイル名ヘッダ)任意のヘッダを指定することができますが(https://flume.apache.org/FlumeUserGuide.html#hdfs-sinkでエスケープシーケンスの説明で%{host}を参照してください

EDIT:については 例の設定は、次のことを試すことができます!

a1.sources = r1 
a1.sources.r1.type = spooldir 
a1.sources.r1.channels = c1 
a1.sources.r1.spoolDir = /flumespool 
a1.sources.r1.basenameHeader = true 

a1.channels = c1 
a1.channels.c1.type = memory 

a1.sinks = k1 
a1.sinks.k1.type = hdfs 
a1.sinks.k1.channel = c1 
a1.sinks.k1.hdfs.path = /flumeout/%{basename} 
a1.sinks.k1.hdfs.fileType = DataStream 
+0

あなたはどんな例に – animal

+1

@animalを提供することができます:私は答えを編集した、それは今 – bessbd

+0

例の設定を含んでいるが、この例では、あなたはa1.sourcを使用していませんes.src-1.fileHeader – animal

関連する問題