火花流不工作

Posted

技术标签:

【中文标题】火花流不工作【英文标题】:Spark streaming not working 【发布时间】:2015-06-19 22:55:44 【问题描述】:

我有一个基本的火花流字数,但它只是不起作用。

import sys
from pyspark import SparkConf, SparkContext
from pyspark.streaming import StreamingContext

sc = SparkContext(appName='streaming', master="local[*]")
scc = StreamingContext(sc, batchDuration=5)

lines = scc.socketTextStream("localhost", 9998)
words = lines.flatMap(lambda line: line.split())
counts = words.map(lambda word: (word, 1)).reduceByKey(lambda x, y: x + y)

counts.pprint()

print 'Listening'
scc.start()
scc.awaitTermination()  

我在另一个运行nc -lk 9998 的终端上粘贴了一些文本。它会打印出典型的日志(没有例外),但最终会将作业排队等待一段奇怪的时间(45 年),并且会继续打印...

15/06/19 18:53:30 INFO SparkContext: Created broadcast 1 from broadcast at DAGScheduler.scala:874
15/06/19 18:53:30 INFO DAGScheduler: Submitting 1 missing tasks from ResultStage 2 (PythonRDD[7] at RDD at PythonRDD.scala:43)
15/06/19 18:53:30 INFO TaskSchedulerImpl: Adding task set 2.0 with 1 tasks
15/06/19 18:53:35 INFO JobScheduler: Added jobs for time 1434754415000 ms
15/06/19 18:53:40 INFO JobScheduler: Added jobs for time 1434754420000 ms
15/06/19 18:53:45 INFO JobScheduler: Added jobs for time 1434754425000 ms
...
...

我做错了什么?

【问题讨论】:

【参考方案1】:

Spark Streaming 需要多个执行器才能工作。尝试使用 local[4] 作为 master。

【讨论】:

谢谢。我以为local[*] 会根据本地可用的内核自动分配执行器? (话虽如此,它解决了我的问题,但很好奇为什么* 不起作用) 文档中并不清楚,但我认为local[*] 类似于local,它只为接收者创建一个线程,而为执行者创建一个线程。

以上是关于火花流不工作的主要内容,如果未能解决你的问题,请参考以下文章

fetchAssetsWithLocalIdentifiers:options: 我的照片流不工作

导入 input_data MNIST 张量流不工作

卡夫卡火花流工作有许多活跃的工作

groupByKey 在火花中无法正常工作

火花联合不按预期工作,添加新行

为啥火花中的一些音符工作得非常慢?为啥在同一情况下多次执行有不同的执行时间?