Я использую netcat
в качестве моста между некоторыми службами и экземпляром потоковой передачи искры. Например, служба отправляет сообщение host:port
, которое слушает net cat, а затем идея заключается в том, что spark может использовать это. Однако есть способ сделать netcat сквозным, то есть действовать как действительно простой сервер и буквально слушать и излучать.
ncat -lk localhost 5005
Это показывает, что я могу отправлять свои сообщения из моей первой службы. Но я ничего не получаю от spark, который слушает тот же хост: порт. Есть ли способ заставить это работать?
Одно из предложений состояло в том, чтобы использовать конвейер с mkfifo backpipe
, однако теперь проблема заключается в том, что при запуске мой экземпляр spark прослушивает 5006, но кажется, что это соединение не работает. Моя служба отправляет на 5005, а затем netcat должен передать ее на 5006, но как мне сделать так, чтобы служба на 5006 всегда присутствовала, чтобы мой экземпляр spark мог ее прослушивать?
mkfifo backpipe
nc -kl localhost 5005 0<backpipe | nc localhost 5006 1>backpipe
Я также попробовал следующее для хорошей меры:
nc -klp 5005 -w 5 localhost 5006
Но проблема всегда в том, что искра не может потреблять со следующей ошибкой:
Deregistered receiver for stream 0: Restarting receiver with delay 2000ms: Error connecting to 127.0.0.1:5006 - java.net.ConnectException: Connection refused
mkfifo
под рукой он должен работать сnetcat
, как, например, описано в функции двунаправленного соката с nc - person Dilettant   schedule 30.06.2016