Spark Streaming入门课程学习笔记

第一章Spark Streaming 概述

1.1Spark Streaming 是什么?
(1)用于流式数据的处理。
(2)支持的数据输入源很多 kafka、flume 、twitter 、zeroMQ 简单的Tcp套接字
(3)数据输入后可以用Spark的高度抽象原语:map reduce join window 进行运算
(4)多位置保存 HDFS、 数据库
(5)高融合性:MLlib机器学习、Graphx都可以完美融合
(6)使用离散化流作为抽象表示,叫做DStream(随时间推移而收到数据的序列)
(7)内部,每个时间区间收到的数据都作为RDD存在,而DSrteam则是由这些RDD所组成的序列
(8)DStream多数据输入源创建,如:Flume、Kafka、或者HDFS。创建的DStream支持两种操作,一种是转化操作(生成新的DStream)另一种是输出操作,可以将数据写入外部系统中,DStream提供了许多与RDD所支持的操作相类似的操作支持,还增加了与时间相关的新操作,比如滑动窗口

1.2Spark Streaming 特点
(1)易用
(2)容错
(3)易整合到Spark体系
1.3SparkStraming架构
在这里插入图片描述

第二章Dsteam入门

2.1WordCount案例实操(idea)
1、需求
使用netcat工具向9999端口不断的发送数据,通过SparkStreaming读取端口数据并统计不同单词出现的次数
2、添加依赖(Pom.xml)

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-streaming_2.11</artifactId>
    <version>2.1.1</version>
</dependency>

3、编写代码
//首先需要连接Spark 和 初始化相关信息

  //1.初始化Spark配置信息
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("StreamWordCount")

    //2.初始化SparkStreamingContext
    val ssc = new StreamingContext(sparkConf, Seconds(5))

//对数据进行处理

  //3.通过监控端口创建DStream,读进来的数据为一行行
    val lineStreams = ssc.socketTextStream("hadoop102", 9999)

    //将每一行数据做切分,形成一个个单词
    val wordStreams = lineStreams.flatMap(_.split(" "))

    //将单词映射成元组(word,1)
    val wordAndOneStreams = wordStreams.map((_, 1))

    //将相同的单词次数做统计
    val wordAndCountStreams = wordAndOneStreams.reduceByKey(_+_)

打印内容同时开启Stream接收数据

 //打印
    wordAndCountStreams.print()

    //启动SparkStreamingContext
    ssc.start()
    ssc.awaitTermination()

4、在shell端通过NetCat发送数据

$ nc -lk 9999
hello BeiJing

未完待续…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值