apache-spark - Spark Streaming:连接被拒绝
问题描述
我有一个简单的 Spark Streaming 代码,我想尝试一下:
import org.apache.spark.SparkConf
import org.apache.spark.streaming.{Seconds, StreamingContext}
object WordCountStreamingWithFlume {
def main(args: Array[String]) {
val ssc = new StreamingContext(new SparkConf().setMaster("local[2]").setAppName("socketstream"), Seconds(10))
val hostname = "localhost"
val mystreamRDD = ssc.socketTextStream(hostname, 7777)
mystreamRDD.print()
ssc.start()
ssc.awaitTermination()
}
}
我sbt
用来编译和打包它。
在控制台(我正在使用 Manjaro Linux)中,我运行以下命令:
cat file.txt | nc localhost 7777
将数据发送到7777
我机器中的端口。
为了运行编译后的 Spark Streaming 代码,我在 Intellij IDEA 中打开终端并执行以下操作:
spark-submit target/scala-2.11/simplesparkflumeexample_2.11-0.1.jar
但我收到以下错误:
WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
WARN Utils: Your hostname, ... resolves to a loopback address: 127.0.1.1; using <some_ip> instead (on interface enp2s0)
WARN Utils: Set SPARK_LOCAL_IP if you need to bind to another address
WARN ReceiverSupervisorImpl: Restarting receiver with delay 2000 ms: Error connecting to localhost:7777
java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
...
我也试过:
首先,检查 sshd 服务,它正在运行。
然后,检查7777端口,我不确定如何确认这一点。我唯一执行的是打开两个控制台并使用netcat
. 结果是成功的,因为我可以看到我在控制台中输入的数据出现在另一个控制台中。
有任何想法吗?
解决方案
在控制台(我使用 Manjaro Linux)中,我运行: cat file.txt | nc localhost 7777 将数据发送到我机器中的端口 7777。
-l
当我这样做(添加和)时,它不是以这种方式运行,而是起作用-p
:
cat file.txt | nc -l localhost -p 7777