不知道這是一所以,超級用戶或ServerFault的問題,但我剛剛安裝在我的Windows機器上的FlumeNode服務,我想通過發送記錄infromation到FlumeNode的命名管道。如何尾命名管道到水槽的Windows節點(水槽節點服務)
Flume Cookbook聲明我們可以將命名管道拖尾到Flume,但似乎這需要cygwin,並且我們不太可能在所有Flume節點上安裝cygwin。以下是食譜的說明:
控制檯資源非常有用,因爲我們可以直接將數據傳輸到Flume 。下一個示例將程序中的數據傳輸到Flume中,然後 將其傳遞。
$ <external process> | flume node_nowatch -1 -s -n foo -c
'foo:console|agentBESink("collector");'
理想情況下,你可以寫數據到一個命名管道,只是有水槽用文字或尾部從命名管道讀取數據 。不幸的是,Flume的文本和尾部版本 目前與Linux環境中的命名管道 不兼容。但是,你可以管數據傾聽標準輸入控制檯上的一個水槽節點 :
$ tail -f namedpipe | flume node_nowatch -1 -s -n foo -c
'foo:console|agentBESink;'
或者你可以使用exec源以獲取其輸出數據:
$ flume node_nowatch -1 -s -n bar -c 'bar:exec("cat
pipe")|agentBESink;'
我還發現一個google groups regarding this idea討論,似乎Claudera人說,這是可能的,但並沒有什麼具體的解釋水槽將如何連接到一個管道,如果它充當服務器或CL在這種情況下。
理想情況下,我應該可以在我的應用程序中創建NamedPipeClientSteram
或NamedPipeServerStream
。客戶端需要一個命名管道服務器才能運行,客戶端會查找連接到它的客戶端。我假設Flume將充當服務器,但我無法證實這一點。例如。
NamedPipeClientStream pipeClient = new NamedPipeClientStream(".", "FlumeNamedPipe", PipeDirection.Out, pIpeOptions.None);
pipeClient.Connect();
有什麼東西可以添加到命令行參數,當在Windows啓動Flume服務,以便尾巴管道?