spark学习笔记(十一)——sparkStreaming-概述/特点/构架/DStream入门程序wordcount

目录

SparkStreaming

sparkStreaming

DStream

sparkStreaming特点

sparkStreaming构架

背压机制

DStream入门


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,输入数据

 启动程序查看输出结果

本文仅仅是学习笔记!!!!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值