Spark 流示例对我不起作用:网络字数(可能数据未流式传输)

dex*_*ter 3 apache-spark spark-streaming

  1. 启动 master 和 worker
  2. 启动控制台并输入

nc -lk 9999

  1. 冉网络字数统计示例

./bin/run-example streaming.NetworkWordCount 本地主机 9999

  1. 写在

“你好世界你好”

网猫控制台。

  1. 但是我运行程序的控制台没有显示计算出的数据(可能是数据没有流式传输),当我停止程序时,它计算了

你好,2世界,1

Ras*_*hod 5

我也遇到了同样的问题,上周末为了让这个简单的流媒体示例工作。最后我可以成功执行 NetworkWorkCount 程序。我正在使用火花 1.5.2。和 Ubuntu_14 系统。

有多种方法可以解决此问题,您可以使用其中之一:

  1. 您需要更新NetworkWorkCount.scala 的代码(在/examples/src/main/scala/org/apache/spark/examples/streaming/ 中),在创建SparkConf 变量时添加setMaster("local[2]") 如下。

    new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount")

这种方法的问题是,您必须以某种方式编译此更新后的代码,以使我们的修改有效,这对于刚开始学习 Spark 并尝试运行这个简单示例的人来说可能是另一个问题。对他们来说,最简单的方法是下面的选项。

  1. 最简单的解决方案是将 MASTER 变量设置为 local[2] 如下:

    一种。切换到 SPARK_HOME 的 /conf 目录

    湾 使用提供的模板创建 spark-env.sh:

     cp spark-env.sh.template spark-env.sh
    
    Run Code Online (Sandbox Code Playgroud)

    打开 spark-env.sh 并在其中设置以下配置:

     MASTER=local[2]
    
    Run Code Online (Sandbox Code Playgroud)
  2. 现在打开第一个终端并启动 netcat 实用程序

    nc -lk 9999

  3. 打开第二个终端并执行 NetworkWordCount 程序

    ./bin/run-example streaming.NetworkWordCount 本地主机 9999

它将开始显示连续流,如下所示:

-------------------------------------------
Time: 1450077999000 ms
-------------------------------------------
(are,12)
(am,6)
(how,6)
(rashmit,6)
(apache,6)
(hello,5)
(spark,5)
(you,12)
(i,6)
(sparkhello,1)
...

-------------------------------------------
Time: 1450078000000 ms
-------------------------------------------
(are,2)
(am,1)
(how,1)
(rashmit,1)
(apache,1)
(hello,1)
Run Code Online (Sandbox Code Playgroud)