Spark Streaming的案例分析

这篇文章主要讲解了“Spark Streaming的案例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spark Streaming的案例分析”吧!

    为什么从SparkStreaming入手?

    因为SparkStreaming 是Spark Core上的一个子框架,如果我们能够完全精通了一个子框架,我们就能够更好的驾驭Spark。SparkStreaming和Spark SQL是目前最流行的框架,从研究角度而言,Spark SQL有太多涉及到SQL优化的问题,不太适应用来深入研究。而SparkStreaming和其他的框架不同,它更像是SparkCore的一个应用程序。如果我们能深入的了解SparkStreaming,那我们就可以写出非常复杂的应用程序。

  SparkStreaming的优势是可以结合SparkSQL、图计算、机器学习,功能更加强大。这个时代,单纯的流计算已经无法满足客户的需求啦。在Spark中SparkStreaming也是最容易出现问题的,因为它是不断的运行,内部比较复杂。

本课内容:

1,SparkStreaming另类在线实验

     这个另类在线实验体现在batchInterval设置的很大,5分钟甚至更大,为了更清晰的看清楚Streaming运行的各个环境。

     实验内容是使用SparkStreaming在线统计单词个数,SparkStreaming连接一个端口中接收发送过来的单词数据,将统计信息输出到控制台中,其中使用netcat创建一个简单的server,来开启并监听一个端口,接收用户键盘输入的单词数据。

2,瞬间理解SparkStreaming的本质

     结合这个实验并通过观察Web UI上的Job,Stage,Task等信息,再结合SparkStreaming的源码,对SparkStreaming进行分析。

实验环境说明:

     实验由3台Ubuntu14.04虚拟机上运行,其中一台作为Spark的Master,另外两台作为Spark的Worker。使用的Spark版本为目前最先版1.6.1,Spark checkpoint的存储在HDFS上(hadoop的版本为2.6.0)。为了记录SparkStreaming运行的过程信息,需要启动Spark的HistoryServer,以下是启厅Spark,HDFS,HistoryServer服务的脚本。

      Spark Streaming的案例分析  spark 第1张       Spark Streaming的案例分析  spark 第2张Spark Streaming的案例分析  spark 第3张Spark Streaming的案例分析  spark 第4张

Spark Streaming的案例分析  spark 第5张

Spark Streaming的案例分析  spark 第6张

Spark Streaming的案例分析  spark 第7张

实验代码如下

Spark Streaming的案例分析  spark 第8张

提交到Spark集群的脚本如下

Spark Streaming的案例分析  spark 第9张

首先在Master节点使用nc -lk 9999,创建一个简单的Server,然后在运行脚本提交Spark Application。

Spark Streaming的案例分析  spark 第10张

从网上找来一篇英文文章,如下

Spark Streaming的案例分析  spark 第11张

单词统计结果如下

Spark Streaming的案例分析  spark 第12张

在Spark UI上观察发现有4个Job

Spark Streaming的案例分析  spark 第13张

首先查看Job 0发现SparkStreaming在刚启动时会提交一个Job

Spark Streaming的案例分析  spark 第14张

StreamingContext的start方法中调用了JobScheduler的start方法

Spark Streaming的案例分析  spark 第15张

继续看JobScheduler类的start方法

Spark Streaming的案例分析  spark 第16张

Spark Streaming的案例分析  spark 第17张

Spark Streaming的案例分析  spark 第18张

从注释中说明该方法是为了确保每个Slave都注册上,避免所有的Receiver在同一个节点,为了后面计算负载均衡。

Job1一直在运行是因为它不断接收数据流中的数据,运行在Worker1上并且运行1个Task来接收数据,数据本地性为PROCESS_LOCAL,receiver接收到数据会保存到内存中。

Spark Streaming的案例分析  spark 第19张

Spark Streaming的案例分析  spark 第20张

Spark Streaming的案例分析  spark 第21张

Job2的信息如下

Spark Streaming的案例分析  spark 第22张

其中Stage3信息如下

Spark Streaming的案例分析  spark 第23张

其中Stage4信息如下

Spark Streaming的案例分析  spark 第24张

Job3的信息如下,Job3的DAG图和Job2的DAG图是一样的,但是Stage5跳过了。

Spark Streaming的案例分析  spark 第25张

后面的Job都是在对单词切分统计。

Spark Streaming的案例分析  spark 第26张

     回顾这4个Job,其中2个Job是框架运行的,Job0确保所有slave都注册上,避免所有的Receiver在同一个节点,为了后面计算负载均衡。Job1为启动一个数据接收器,运行在一个Executor上的一个Task上,不断接收数据量数据,然后保存到内存中。Job2和Job3在运行单词切分统计。

感谢各位的阅读,以上就是“Spark Streaming的案例分析”的内容了,经过本文的学习后,相信大家对Spark Streaming的案例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是蜗牛博客,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram