作家
登录

大数据分析技术与实战之Spark Streaming

作者: 来源: 2017-10-11 11:56:48 阅读 我要评论

,b:Int)=>(a+b),Seconds(ar 
  • gs(2).toInt),Seconds(args(3).toInt)) 
  • wordcounts.print() 
  • ssc.start() 
  • ssc.awaitTermination() 
  • 运行演示

    第1步,slave1节点启动数据流模仿器。

    大年夜数据分析技巧与拭魅战之Spark Streaming
    图21 IntelliJ IDEA中WindowWordCount示意图

    大年夜数据分析技巧与拭魅战之Spark Streaming
    图22 master上WindowWordCount.jar示意图

    第3步,运行分析器。在master节点开启终端,经由过程下面代码向Spark集群提交应用法度榜样。

    1. $ bin/spark-submit ~/WindowWordCount.jar slave1 9999 30 10 

    查看结不雅

    第1步 在slave1上查看数据流模仿器运行情况。分析谱钥浏群上提走运行后与slave1上运行的数据流模仿器建立连接。当检测到外部连接时,数据流模仿器将每隔1000毫秒大年夜/home/dong/Streamingtext/file1.txt中随机朝长进步一行文本发送给slave1节点的9999端口。因为该文本文件中每一行只包含一个单词和一个逗号,是以每秒仅发送一个单词和一个逗号给端口,如图23所示。

    大年夜数据分析技巧与拭魅战之Spark Streaming

    设置合理的批处理时光和窗口大年夜小


    图23 在slave1上数据流模仿器运行示意图

    第2步,在master上查看分析器运行情况。在master节点的提交窗口中可以查看到统计结不雅。在WindowWordCount应用法度榜样启动初期,窗口并没有被接收到的单词填满,但跟着时光的推动,每个窗口中的单词数量最终固定为30个。图7.35只是朝长进步了运行结不雅中的三个批次。因为设定了窗口时光距离是30s,滑动时光距离是10s,且数据流模仿器每距离1s发送一个悼?船是以WindowWordCount每距离10s对以前30s内收到的各单词个数进行统计。图24中截至1479276925000ms分析器对以前30s内收到的30个单词进行统计,个中"spark"累计出现5次,"hbase"累计出现8次,"hello"累计出现9次,"world"累计出现8次。再距离10s,截至1479276935000ms,分析器对以前30s内收到的30个单词进行统计,个中"spark"累计出现8次,"hbase"累计出现9次,"hello"累计出现7次,"world"累计出现6次。


    图4 滑动时光距离、窗口时光距离、批处理时光距离综合示意图

    大年夜数据分析技巧与拭魅战之Spark Streaming
    图24 在master上分析器运行示意图

    第3步,查看持久化数据。运行后查看HDFS上的持久化目次/user/dong/input/WindowWordCountlog,如图25所示。Streaming应用法度榜样将接收到的收集数据持久化至该目次下,便于容错处理。

    大年夜数据分析技巧与拭魅战之Spark Streaming
    图25 HDFS上持久化目次示意图

    图13 在dong用户主目次下生成NetworkWordCount.jar示意图

    机能考量

    在开辟Spark Streaming应用法度榜样时,要结合集群中各节点的设备情况尽可能地进步数据处理的及时性。在调优的过程中,一方面要尽可能应用集群资本来削减每个批处理的时光;另一方面要确保接收到的数据能及时处理掉落。

    运行时光优化

    Spark Streaming中功课之间平日存在依附关系,后面的功课必须确保前面的功课履行停止后才能提交,若前面的功课的履行时光跨越了设置的批处理时光距离,那么后续的功课将无法按时提交履行,造成功课的堵塞。也就是说若想Spark Streaming应用法度榜样稳定地在集群中运行,对于接收到的数据必须尽快处理掉落。例如若设定批处理时光为1秒钟,那么体系每1秒钟生成一个RDD,如不雅体系计算一个RDD的时光大年夜于1秒,那么当前的RDD还没来得及处理,后续的RDD已经提交上来在等待处理了,这就产生了堵塞。是以须要设置一个合理的批处理时光距离以确保功课可以或许在这个批处理时光距离时光内停止。很多实验数据注解,500毫秒对大年夜多Spark Streaming应用而言是较好的批处理时光距离。

    类似地,对于窗口操作,滑动时光距离对于机能也有很大年夜的影响。当单批次数据计算价值过高时,可以推敲恰当增大年夜滑动时光距离。

    进步并行度也是一种削减批处理所消费时光的常见办法。有以下三种方法可以进步并行度。一种办法是增长接收器数量。如不雅获取的数据太多,则可能导致单个节点来不及对数据进行读入与分发,使得接收器成为体系瓶颈。这时可以经由过程创建多个输入DStream来增长接收器数量,然后再应用union来把数据归并为一个数据源。第二种办法是将收到的数据显式地从新分区。如不雅接收器数量无法再增长,可以经由过程应用DStream.repartition、spark.streaming.blocklnterval等参数显式地对Dstream进行从新分区。第三种办法是进步聚合计算的并行度。对于会导致shuffle的操作,例如reduceByKey、reduceByKeyAndWindow等操作,可经由过程显示设置更高的行度参数确保更为充分地应用集群资本。


      推荐阅读

      业界关注的NFV,近况如何?

    实现了功能虚拟化的收集可以或许使通信办事供给商快速供给办事、分析和主动化的收集,加快新办事投向市场的周期,并有效应用数据中间的通用平台。收集功能虚拟化旨在赞助电信行业加快立异>>>详细阅读


    本文标题:大数据分析技术与实战之Spark Streaming

    地址:http://www.17bianji.com/lsqh/37783.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)