Не уверен, что это вопрос SO, SuperUser или ServerFault, но я только что установил сервис FlumeNode на моем компьютере с Windows и хотел отправить информацию о регистрации через именованный канал в FlumeNode.
The Flume Cookbook утверждает, что мы можем привязать именованный канал к Flume, но, похоже, для этого требуется cygwin, и вряд ли мы собираемся установить cygwin на все узлы Flume.Вот инструкции из поваренной книги:
Консольные источники полезны, потому что мы можем напрямую передавать данные в Flume.В следующем примере данные передаются из программы в Flume, которая затем доставляет их.
$ <external process> | flume node_nowatch -1 -s -n foo -c
'foo:console|agentBESink("collector");'
В идеале вы можете записывать данные в именованный канал и просто иметь Flume для чтения данных из именованного каналаиспользуя текст или хвост.К сожалению, эта версия текста и хвоста Flume в настоящее время не совместима с именованными каналами в среде Linux.Однако вы можете передать данные на узел Flume, прослушивающий консоль stdin:
$ 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 по поводу этой идеи , и кажется, что люди из Claudera говорят, что это возможно, но нет ничего конкретного, объясняющего, как Flume подключится к трубе и если этов этом случае выступает в роли сервера или клиента.
В идеале я должен иметь возможность создать NamedPipeClientSteram
или NamedPipeServerStream
в своем приложении.Клиент требует, чтобы сервер именованного канала работал, и клиент ищет клиентов, которые к нему подключаются.Я предполагаю, что Flume будет действовать как сервер, но я не могу это подтвердить.Например,
NamedPipeClientStream pipeClient = new NamedPipeClientStream(".", "FlumeNamedPipe", PipeDirection.Out, pIpeOptions.None);
pipeClient.Connect();
Есть ли что-то, что может быть добавлено к аргументам командной строки при запуске службы Flume в Windows, чтобы подключить канал?