2016-08-19 13 views
0

を追加し、私は次水路の構成を有しているテスト水路HDFSシンクとnetcatをソースにはカールを使用して、手動でタイムスタンプ

tier1.sources.source1.type  = netcat 
tier1.sources.source1.bind  = 199.9.0.11 
tier1.sources.source1.port  = 9999 
tier1.sources.source1.channels = channel1 
tier1.channels.channel1.type = memory 

tier1.sinks.sink1.type   = hdfs 
tier1.sinks.sink1.channel  = channel1 
tier1.sinks.sink1.hdfs.path = /flume/events/%y-%m-%d/%H%M/%S 
tier1.sinks.sink1.hdfs.filePrefix = events- 

どのように私はcURLのを手動タイムスタンプを指定することでこれをテストすることができますか?

私は、次のさまざまなバリエーションを試してみた:

curl -H 'timestamp : 1471620532' --data 'test' telnet://199.9.0.11:9999 

私は水路ログ内のエラーで終了してみてくださいすべて:

水路イベントヘッダーの期待タイムスタンプが、それはでしたnull

これに対するすべての解決策は、hdfs.useLocalTimeStamp = trueを設定しているか、またはインターセプタを使用していますか?

答えて

0

ソースが必ずしもnetcatである必要がない場合は、HTTP Sourceに進んでください。そこ

あなたはそれがnetcatをソースに非常に同様に使用することができること以外の任意のヘッダを指定することができます。

例の設定のために、私はカフカのソースと一緒に行くことになった

a1.sources = r1 
a1.channels = c1 
a1.sources.r1.type = http 
a1.sources.r1.port = 5140 
a1.sources.r1.channels = c1 

a1.channels = c1 
a1.channels.c1.type = memory 
a1.channels.c1.capacity = 10000 
a1.channels.c1.transactionCapacity = 10000 
a1.channels.c1.byteCapacityBufferPercentage = 20 
a1.channels.c1.byteCapacity = 800000 

a1.channels = c1 
a1.sinks = k1 
a1.sinks.k1.type = logger 
a1.sinks.k1.channel = c1 
+0

試みるかもしれませんが、ええ、離れてnetcatをソースから取得することは、私のユースケースのための最善の行動は確かでした。 – jroot

関連する問題