2015-11-20 6 views
5

、からタイムスタンプを削除します。水路HDFSはシンク:ソースがSpooldirで、シンクは、私がHDFS内のファイルを収集することができる午前HDFS</p> <p>である私は自分のアプリケーションのための水路のエージェントを設定したファイル名

エージェントの構成は次のとおりです。

agent.sources = src-1 
agent.channels = c1 
agent.sinks = k1 

agent.sources.src-1.type = spooldir 
agent.sources.src-1.channels = c1 
agent.sources.src-1.spoolDir = /home/Documents/id/ 
agent.sources.src-1.deserializer=org.apache.flume.sink.solr.morphline.BlobDeserializer$Builder 
agent.sources.src-1.fileHeader=true 
agent.channels.c1.type = file 
agent.sources.src-1.basenameHeader=true 
agent.sources.src-1.basenameHeaderKey=basename 

agent.sinks.k1.type = hdfs 
agent.sinks.k1.channel = c1 
agent.sinks.k1.hdfs.path =hdfs://localhost:8020/user/flume/events/ 
agent.sinks.k1.hdfs.filePrefix = %{basename} 
agent.sinks.k1.hdfs.fileHeader = true 
agent.sinks.k1.hdfs.fileType = DataStream 

私はフォーマット以下のようにHDFSのファイルを持っています:

/flume/events/file1.txt.1411543838171 /flume/events/file2.txtを。 1411544272696

私が知りたいタイムスタンプ(1411543838171)/ファイルのイベントごとに自動的に生成される一意の番号を削除できますか名?

答えて

2

設定を使用するだけでタイムスタンプを削除することはできないようです。あなたは以下のでしょうHDFSシンクはあなたをどのように機能するかを見ている場合:fileExtensionCounterfileExtensionCounter = new AtomicLong(clock.currentTimeMillis());

ある

long counter = fileExtensionCounter.incrementAndGet(); 
String fullFileName = fileName + "." + counter; 

あなたは作家のためのシンクherehereためのコードを確認することができます。

あなたは、単一のファイルに複数のイベントを入れて何をしたいのか、そして、あなたがシンクプロパティ

  • rollTime
  • rollSize
  • rollCount
  • batchSize
  • で見ることができた場合
関連する問題