spark学习笔记——sparkStreaming-概述/特点/构架/DStream入门程序wordcount
Posted 一个人的牛牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark学习笔记——sparkStreaming-概述/特点/构架/DStream入门程序wordcount相关的知识,希望对你有一定的参考价值。
目录
SparkStreaming
sparkStreaming
Spark Streaming用于流式数据的处理。Spark Streaming支持的数据输入源很多:Kafka、Flume、Twitter、ZeroMQ 和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语:map、reduce、join、window等进行运算。而结果也能保存在:HDFS,数据库等。
DStream
DStream是随时间推移而收到的数据的序列,Spark Streaming使用离散化流作为抽象表示,在内部每个时间区间收到的数据都作为RDD存在,而DStream是由这些RDD所组成的序列,因此得名“离散化”,简单来将DStream就是对RDD在实时数据处理场景的一种封装。
sparkStreaming特点
易用
Spark Streaming支持Java、Python、Scala等编程语言,可以像编写离线程序一样编写实时计算的程序求照的器。
容错
Spark Streaming在没有额外代码和配置的情况下,可以恢复丢失的数据。实时计算的容错性至关重要。
RDD容错机制:每一个RDD都是个不可变的分布式可重算数据集,它记录着确定性的操作继承关系,只要输入数据是可容错的,任意一个RDD的分区出错或不可用都可以使用原始输入数据经过转换操作重新计算得到。
易整合到Spark体系
Spark Streaming可以在Spark上运行,允许重复使用相同的代码进行批处理,实时处理可以与离线处理相结合实现交互式的查询操作。
sparkStreaming构架
SparkStreaming整体构架图
sparkStreaming构架图
背压机制
spark1.5版本开始Spark Streaming可以动态控制数据接收速率来适配集群数据处理能力。
背压机制(Spark Streaming Backpressure): 根据JobScheduler反馈作业的执行信息来动态调整Receiver数据接收率。
通过属性“spark.streaming.backpressure.enabled”控制是否启用backpressure机制,默认值false不启用。
DStream入门
DStream是Spark Streaming的基础抽象,代表持续性的数据流和经过各种Spark原语操作后的结果数据流。DStream是一系列连续的RDD。每个RDD含有一段时间间隔内的数据。
sparkStreaming实现wordcount程序!
代码
import org.apache.spark.SparkConf
import org.apache.spark.streaming.Seconds, StreamingContext
object WordCount
def main(args: Array[String]): Unit =
//配置spark
val sparkConf = new SparkConf().setMaster("local[*]").setAppName("StreamWordCount")
//初始化streamingContext,间隔时间为5秒
val ssc = new StreamingContext(sparkConf, Seconds(5))
//通过监控端口创建Dstream,读取数据(行),主机名、端口号
val line = ssc.socketTextStream("hadoop01", 9999)
//切分数据
val word = line.flatMap(_.split(" "))
//映射(word,1)
val word2 = word.map((_, 1))
//统计
val wordcount = word2.reduceByKey(_ + _)
//打印
wordcount.print()
//启动sparkStreamingCount
ssc.start()
ssc.awaitTermination()
结果:
启动netcat作为数据源,端口号为9999,输入数据
启动程序查看输出结果
本文仅仅是学习笔记!!!!
以上是关于spark学习笔记——sparkStreaming-概述/特点/构架/DStream入门程序wordcount的主要内容,如果未能解决你的问题,请参考以下文章
Spark StreamingSpark Day11:Spark Streaming 学习笔记
Spark StreamingSpark Day11:Spark Streaming 学习笔记