Spark Streaming 基础:DStream 与实时计算模型
知识点:
实时计算概念:批处理 vs 流处理,微批处理模型(Spark Streaming 的核心)
DStream:离散流,本质是一系列连续的 RDD
Spark Streaming 与 Spark Core 的关系:复用 Spark Core 的调度引擎
练习:
搭建本地实时流环境,实现单词实时统计(监听本地端口):
from pyspark.streaming import StreamingContext
初始化StreamingContext,批次间隔5秒
ssc = StreamingContext(spark.sparkContext, batchDuration=5)
监听本地9999端口
lines = ssc.socketTextStream("localhost", 9999)
实时词频统计
words = lines.flatMap(lambda line: line.split(" "))
word_counts = words.map(lambda word: (word, 1)).reduceByKey(lambda a, b: a + b)
打印结果
word_counts.pprint()
启动流计算
ssc.start()
等待计算结束
ssc.awaitTermination()
本地启动 NetCat:nc -lk 9999,输入文本测试
易错:
批次间隔(batchDuration)决定实时性,间隔越小,实时性越高,资源消耗越大
StreamingContext 启动后,不能再添加新的计算逻辑

浙公网安备 33010602011771号