首页 > 其他 > 详细

大数据学习之Spark Streaming基础 52

时间:2019-07-07 21:56:56      阅读:103      评论:0      收藏:0      [点我收藏+]

1、Spark Streaming简介

Spark Streaming是核心Spark API的扩展,可实现可扩展、高吞吐量、可容错的实时数据流处理。数据可以从诸如KafkaFlumeKinesisTCP套接字等众多来源获取,并且可以使用由高级函数(如mapreducejoinwindow)开发的复杂算法进行流数据处理。最后,处理后的数据可以被推送到文件系统,数据库和实时仪表板。而且,您还可以在数据流上应用Spark提供的机器学习和图处理算法。

技术分享图片

2、Spark Streaming的特点

技术分享图片

3、Spark Streaming的内部结构

在内部,它的工作原理如下。Spark Streaming接收实时输入数据流,并将数据切分成批,然后由Spark引擎对其进行处理,最后生成“批”形式的结果流。

技术分享图片

Spark Streaming将连续的数据流抽象为discretizedstreamDStream。在内部,DStream 由一个RDD序列表示。

 

 

4、第一个小案例:NetworkWordCount

确保你的服务器上有netcat  

 yum install -y nc

技术分享图片

 

启动7788端口 :nc -lk 7788

 

package day07

import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}
import org.apache.spark.streaming.{Milliseconds, StreamingContext}
import org.apache.spark.{SparkConf, SparkContext}

/**
  * @author Dawn
  * @version 1.0, 2019年6月24日22:10:22
  *          sparkStreaming-wordcount
  *
  *          rdd:创建的程序入口 sparkContext
  *          dataFrame:创建的程序入口 sparkSession
  *
  */
object WordCount {
  def main(args: Array[String]): Unit = {
    //1.创建sparkContext
    val conf:SparkConf = new SparkConf().setAppName("WordCount").setMaster("local[2]")
    val sc:SparkContext=new SparkContext(conf)

    //2.创建StreamingContext
    val ssc: StreamingContext = new StreamingContext(sc,Milliseconds(2000))

    //3.可以创建Dstream,首先接入数据源
    //socket
    val datas: ReceiverInputDStream[String] = ssc.socketTextStream("hadoop01",7788)

    //4.进行计算,创建Dstream  hello hunter hello reba
    val rd: DStream[(String, Int)] = datas.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_)

    //5.打印结果
    rd.print()

    //6.注意:需要启动sparkstreaming程序 exit quit
    ssc.start()
    ssc.awaitTermination()
  }
}

  

 

大数据学习之Spark Streaming基础 52

原文:https://www.cnblogs.com/hidamowang/p/11147599.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!