分享

Spark使用TCP问题

evababy 发表于 2015-5-21 18:15:12 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 37747
本帖最后由 evababy 于 2015-5-21 18:22 编辑

按照官网例子监听TCP 9999测试结果如下:

1、 nc -lk 9999 启动后,自身发消息,spark可以接受消息
2、开nc -lk 9999和spark,用java tcp client发消息,谁都接收不到
3、开nc -lk 9999和spark,用nc xx.xxx.xx.x 9999间的发送消息正常,spark接收不到。
4、开java tcp server和spark,用java tcp client发消息,java tcp server可以接收,spark接收不到
5、开java tcp server和spark,用nc xx.xxx.xx.x 9999发消息,java tcp server可以接收,spark接收不到
6、不开spark,用nc和java之间的各种通讯都正常。

综上场景,启动了spark后,正常的tcp server和client变得不一样了,一头污水,sparkTCP只是链接到TCP服务器,不具备发布端口的功能,
疑问:
nc与java tcp区别?
spark能使用什么样的端口?该如何使用?
请高手详解谢谢。






已有(5)人评论

跳转到指定楼层
arsenduan 发表于 2015-5-21 19:35:29
这个属于通信,理论上应该都是可以用的。
一旦进程多了,可能会相互影响。
nc -lk 9999 启动后,自身发消息,spark可以接受消息
不开spark,用nc和java之间的各种通讯都正常。
比如上述你的实验。
单纯的两个都是可以相互通信的,但是一旦开启了彼此另外一个程序,那么就开始不正常了
回复

使用道具 举报

evababy 发表于 2015-5-22 09:22:58
arsenduan 发表于 2015-5-21 19:35
这个属于通信,理论上应该都是可以用的。
一旦进程多了,可能会相互影响。
nc -lk 9999 启动后,自身发消 ...

那spark应该如何使用tcp信息呢?不是只有官网的例子那样吧?
回复

使用道具 举报

YLV 发表于 2015-10-26 10:50:24
不知道这个问题你解决没?
最近做了个这方面的,首先你server端发送的数据流要有区分一行数据的标识,一般是\n,如果没有行结束标识的话,spark会接收到数据,但是不会处理,接收的数据spark会一直写入到一个block里。还有另一种方式,就是没有\n的话,server端主动关闭和spark的连接,spark也会去处理数据。
这是我摸索的,看是否有帮助吧
回复

使用道具 举报

liuzhixin137 发表于 2016-6-15 15:11:25
YLV 发表于 2015-10-26 10:50
不知道这个问题你解决没?
最近做了个这方面的,首先你server端发送的数据流要有区分一行数据的标识,一般 ...

那如何去设置用 \n 分行呢?
回复

使用道具 举报

yunge2016 发表于 2017-8-3 11:20:29
现在开启nc -lk 指定任意端口 都提示nc: Protocol not available 是怎么回事呢,看网上说可能是版本太高,又重新安装了一个版本的,还是不行啊。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条