实验环境
| 主机名 | IP | 操作系统 |
| host1 | 192.168.110.1 | Windows |
| host2 | 192.168.110.13 | Linux |
实验准备
首先在host2上使用nc命令打开端口7777,之后在host1上运行代码
实验代码
import org.apache.spark._
import org.apache.spark.streaming._
object Test {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setMaster("local[*]").setAppName("no_name")
val ssc = new StreamingContext(conf, Seconds(5))
val lines = ssc.socketTextStream("192.168.110.13", 7777)
// 将流的内容原封不动打印
if (lines != null) {
lines.print()
println("start!")
}
ssc.start()
ssc.awaitTermination()
}
}
问题一:
在host2上开启一个新的终端,使用nc命令连接至本地的7777端口,发现拒绝连接(使用-v参数)。各命令如下:

本文档详细记录了在使用SparkStreaming的socketTextStream时遇到的两个问题及其解决方案。问题一是nc命令默认只能建立单个连接,通过添加-k参数支持多连接;问题二是socketFileStream不会监听端口,而需要主动发送数据到指定端口。最终,通过正确操作顺序和理解socket工作原理,成功实现了数据流的传输。
最低0.47元/天 解锁文章
533





