zoukankan      html  css  js  c++  java
  • 大数据学习之Spark Streaming基础 52

    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()
      }
    }
    

      

  • 相关阅读:
    js window对象属相和方法相关整理资料
    js中把字符串转换成number格式方法
    oracle中CAST函数使用简介【转】
    Oracle使用SQL语句修改字段类型
    @GeneratorValue与@GenericGenerator注解使用心得
    @Column 注解详情
    Spring中的注入方式 和使用的注解 详解
    maven教程
    wxpyhon 对话框
    wxpython 按钮等事件的触发
  • 原文地址:https://www.cnblogs.com/hidamowang/p/11147599.html
Copyright © 2011-2022 走看看