zoukankan      html  css  js  c++  java
  • spark streaming -- (视频笔记)

    1、spark: one stack to rule them all

    一个堆栈解决所有的计算问题

    2、大数据第一个问题,如何存储,HDFS已经完美解决了。

    3、资源管理就是yarn,mesource

    4、大数据如何计算。MR将被Spark取代。

    batch计算

    实时流计算 spark streaming

    交互式查询 spark sql,impala,tez

    ---------------------------------------------------

    spark vs storm vs S4

    1、storm 单条时间为 200ms

    2、spark streaming batch 时间最小 500ms

    3、spark streaming的吞吐量远大于storm更远大于S4

    ------------------------------------------------------------------

    what is spark streaming

    为大规模的可伸缩的实时的流处理框架

    可以再数百个节点上运行

    可以秒级别处理数据

    便于批量数据操作

    api简洁

    数据来源有很多,kafka、flume、zeroMQ.....

    --------------------------------------------

    A quick example

    val ssc = new streamingcontext(sparkconf,seconds(1))

    val lines = ssc.sockettextstream(ip,port)

    val words = lines.flatMap(_.split(" "))

    val pairs = words.map=>map(word,1)

    val wordcounts = pairs.reducebykey(_+_)

    wordcounts.print();

    ssc.start()

    ssc.awaittermations();

    -----------------------------------------------------

    spark streaming data flow

    input data stream ==> spark streaming ==> batches of input data ==>spark engine(spark core) ==> batches of processed data

    ------------------------------------------------------

    discretized stream processing

    获取线上的流数据(一秒或者两秒。。。。。),将每秒的数据合并为block,后续的处理都是操作的block。

    -------------------------------------

    operations on dstream

    lines

    DStream ----- RDD@time1 -------- RDD@time2 -------- RDD@time3

    words

    DStream----- words@time1 -------- words@time2 -------- words@time3

    三个DStream,

    --------------------------------

    spark 是如何容错的(fault-tolerance)

    spark流数据,默认有一份备份在别的机器的内存中

    spark流数据,每隔一段时间会进行checkpoint

    hdfs默认做一次checkpoint要一个小时。

    --------------------------

    static operations && window operations

    window操作

    假设要统计近10分钟的数据,时间分片是1秒,window操作会每秒都将近十分钟的数据进行运算

    造成很多重复的运算,因此要进行优化, 就需要去掉旧的,加上新的。

    hashTags.reduceByKeyAndWindow(_+_,_+_,Minutes(1),...)

    -------------------------------------------

    优化

    batch size 大小:batch size的处理时间必须大于batch时间(消费者模式),极容易发生阻塞,如果发生阻塞,1增加并行度,2增加日志(log4j或者更好用的streaminglistening)

    内存优化:默认两份;默认会序列化掉后存储在内存,建议直接去掉序列化,降低cpu,如果非要用序列化可以选用Kryo或protobuf;及时清理缓存,必须设置 spark cleaner.ttl,设置spark.streaming.unpersis,系统会为你做一些东西;java GC选用cms(暂停时间段,但吞吐率不高,并且会引起内存碎片)

    -XX:CMSFullGcsBeforeCormpaction

    -------------------------------------------------------

  • 相关阅读:
    【刷题】BZOJ 4078 [Wf2014]Metal Processing Plant
    【刷题】BZOJ 4000 [TJOI2015]棋盘
    【刷题】BZOJ 3495 PA2010 Riddle
    【刷题】BZOJ 4977 [Lydsy1708月赛]跳伞求生
    Linux 文件系统 相关
    Ubuntu、Sql Server卸载心得
    CVTE面试总结
    open_clientfd(char* hostname,int port)和open_listenfd(int port)
    将十六进制显示为点分十进制
    Linux 小记录
  • 原文地址:https://www.cnblogs.com/isenhome/p/5095436.html
Copyright © 2011-2022 走看看