【发布时间】:2016-11-02 11:04:50
【问题描述】:
我使用netcat 作为一些服务和火花流实例之间的桥梁。例如,服务将消息发送到 net cat 正在侦听的host:port,然后想法是 spark 可以使用它。然而,有没有办法让 netcat 直通,即充当一个非常简单的服务器并从字面上听和发射。
ncat -lk localhost 5005
这表明我可以从我的第一个服务中发送我的消息。但是我从听同一主机:端口的火花中一无所获。有没有办法让这个工作?
一个建议是使用带有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
【问题讨论】:
-
如果有可用的带有水龙头和软管的 netpipes 包可能是更好的匹配,但是手头有
mkfifo它应该与netcat一起使用,如 bidirectional socat functionality with nc 中所述 -
@Dilettant 我试过这个并更新了问题。谢谢。
标签: linux networking apache-spark network-programming netcat