首页 > 解决方案 > 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. 结果是成功的,因为我可以看到我在控制台中输入的数据出现在另一个控制台中。

有任何想法吗?

标签: apache-sparkspark-streaming

解决方案


在控制台(我使用 Manjaro Linux)中,我运行: cat file.txt | nc localhost 7777 将数据发送到我机器中的端口 7777。

-l当我这样做(添加和)时,它不是以这种方式运行,而是起作用-p

cat file.txt | nc -l localhost -p 7777


推荐阅读