zoukankan      html  css  js  c++  java
  • Spark基础:(七)Spark Streaming入门

    介绍

    1、是spark core的扩展,针对实时数据流处理,具有可扩展、高吞吐量、容错.
    数据可以是来自于kafka,flume,tcpsocket,使用高级函数(map reduce filter ,join , windows),
    处理的数据可以推送到database,hdfs,针对数据流处理可以应用到机器学习和图计算中。

    内部,spark接受实时数据流,分成batch(分批次)进行处理,最终在每个batch终产生结果stream.

    2.discretized stream or DStream,
    离散流,表示的是连续的数据流。
    通过kafka、flume等输入数据流产生,也可以通过对其他DStream进行高阶变换产生。
    在内部,DStream是表现为RDD序列。

    体验
    依赖

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

    scalaDeno

    import org.apache.spark._
            import org.apache.spark.streaming._
            import org.apache.spark.streaming.StreamingContext._
    
            object SparkStreamingDemo {
                def main(args: Array[String]): Unit = {
                    //local[n] n > 1
                    val conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount")
                    //创建Spark流上下文,批次时长是1s
                    val ssc = new StreamingContext(conf, Seconds(1))
    
                    //创建socket文本流
                    val lines = ssc.socketTextStream("localhost", 9999)
                    //压扁
                    val words = lines.flatMap(_.split(" "))
                    //变换成对偶
                    val pairs = words.map((_,1));
    
                    val count = pairs.reduceByKey(_+_) ;
                    count.print()
    
                    //启动
                    ssc.start()
    
                    //等待结束
                    ssc.awaitTermination()
                }
            }

    1.启动nc服务器
    [win7]
    cmd>nc -lL -p 9999
    2.启动spark Streaming程序

    3.在nc的命令行输入单词.
    hello world

    4.观察spark计算结果。
    这里写图片描述

    同样的丢到

    希望在知识中书写人生的代码
  • 相关阅读:
    201521123099 《Java程序设计》第6周学习总结
    201521123099《java程序设计》第五周学习总结
    201521123099 《Java程序设计》第3周学习总结
    201521123099 《Java程序设计》第9周学习总结
    201521123099 《Java程序设计》第4周学习总结
    陈敏第一周Java课程总结
    maven常见配置
    使用swagger管理接口
    Reportng配置报告地址
    Testng基本问题
  • 原文地址:https://www.cnblogs.com/tongxupeng/p/10259545.html
Copyright © 2011-2022 走看看