Spark Streaming揭秘 Day30

集群模式下SparkStreaming日志分析

今天通过集群运行模式观察、研究和透彻的刨析SparkStreaming的日志和web监控台。

Day28已经分析过local模式下的日志,集群模式会比较类似,这次主要是对集群模式在的web监控台,进行统一的深度刨析。

我们从wordcount程序开始,代码如下,为了展示出SparkStreaming在集群中的运行,Batch Duration设置为5分钟。

系统作业

为了观察持续运行的情况,我们运行了10分钟,一共产生了6个Job,Job0和Job1是框架产生的系统Job。

首先我们会看见一个Job0,这个是SparkStreaming启动时进行自检的dummy Job,前面课程曾经介绍过,目标是为了资源的平衡和最大化。

Job1一直处于active状态,其内部是一个Receiver,为了启动Receiver进行数据接收而产生的,我们发现这个Job只运行在一台机器上。

无数据处理作业

下面看下Streaming专有的控制台。我们进行了多个Batch的处理,其中第一个Batch没有数据,而第二个Batch有数据,我们发现就算没有数据,因为也会执行一个action,所以也会有处理时间。

首先是Batch1,其中并没有数据发生,这个Batch由Job2和Job3组成。

我们进入Job2,里面有2个Stage,里面虽然触发了一个action,但是因为没数据,所以啥也没干,只是走了一个形式。

我们会发现第一个Stage中没有Task运行。

第二个Stage,是只有一个Task在worker2运行,进行reduce操作。

有数据处理作业

从日志看,发现在输入读入时,在2个worker上进行数据存入,有两个是因为存储级别默认为MEMORY_AND_DISK_SER_2,有备份机制。

有数据输入Batch2由Job4和Job5组成。

我们看下Job4,第一个Stage不再跳过,这个时候,就有具体的数据处理了

第一个Stage,运行在worker4的机器上,和receiver在一起。而且数据是在内存中(NODE_LOCAL)。主要进行了Shuffle write,写入了4条数据。

第二个Stage,在worker4上运行,shuffle read了3个record。

Job5中,也是运行在worker4上,shuffle read了1个record。

在这里,我们发现了一个现象:从web控制台来看,一个Batch Duration产生2个Job,共同完成了这个Batch中全部record的处理,分了2个Job来shuffle read数据。

多Job机制再研究

从上述描述,我们看到一个print函数会由多个Job协作完成,这个是不是偶发现象,我们做个实验。
把代码中分区数调为8,重新运行程序:

这个时候,我们发现同时运行的Job变成了3个,3个Job一共运行了8个Task!!!

这个是spark1.6的新特性,框架在做作业调度的时候,为了更大化的利用集群的资源,把我们的task分发成不同的Job,每个Job负责一部分的Task。启动多个Job,好处是可以支持无限的自动重启提高可靠性。
这个处理代价不是太大,原因是在SparkStreaming角度讲只是封装了Runnable对象,是一种轻量级的处理。具体实现看,在JobGenerator中,在产生Jobset提交到JobScheduler的时候,会根据并行度等规则,把Job分成了不同的子Job。这个子Job的拆分,我们下节课来分析。

欲知后事如何,且听下回分解!

DT大数据每天晚上20:00YY频道现场授课频道68917580

Spark Streaming揭秘 Day30 集群模式下SparkStreaming日志分析的更多相关文章

  1. Spark Streaming揭秘 Day31 集群模式下SparkStreaming日志分析(续)

    Spark Streaming揭秘 Day31 集群模式下SparkStreaming日志分析(续) 今天延续昨天的内容,主要对为什么一个处理会分解成多个Job执行进行解析. 让我们跟踪下Job调用过 ...

  2. 7.redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?

    作者:中华石杉 面试题 redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗? 面试官心理分析 在前几年, ...

  3. 就publish/subscribe功能看redis集群模式下的队列技术(一)

    Redis 简介 Redis 是完全开源免费的,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中 ...

  4. (转)实验文档4:kubernetes集群的监控和日志分析

    改造dubbo-demo-web项目为Tomcat启动项目 Tomcat官网 准备Tomcat的镜像底包 准备tomcat二进制包 运维主机HDSS7-200.host.com上:Tomcat8下载链 ...

  5. LB+nginx+tomcat7集群模式下的https请求重定向(redirect)后变成http的解决方案

    0. 环境信息 Linux:Linux i-8emt1zr1 2.6.32-573.el6.x86_64 #1 SMP Wed Jul 1 18:23:37 EDT 2015 x86_64 x86_6 ...

  6. Redis集群模式下的redis-py-cluster方式读写测试

    与MySQL主从复制,从节点可以分担部分读压力不一样,甚至可以增加slave或者slave的slave来分担读压力,Redis集群中的从节点,默认是不分担读请求的,从节点只作为主节点的备份,仅负责故障 ...

  7. 【Redis集群原理专题】分析一下相关的Redis集群模式下的脑裂问题!

    技术格言 世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程. 什么是脑裂 字面含义 首先,脑裂从字面上理解就是脑袋裂开了,就是思想分家了,就是有了两个山头,就是有了 ...

  8. Tomcat 集群模式下 Session 更新 Bug (redis memcached 及tomcat自已的集群)

    从 excel 中导入数据入系统,我们用的是先上传文件至服务器再分析所上传的文件逐行导入. 就是执行了一循环,在当前循环位置标识一下客户端就知道执行的进度了,以前的方式 是用 session.setA ...

  9. Hadoop框架:集群模式下分布式环境搭建

    本文源码:GitHub·点这里 || GitEE·点这里 一.基础环境配置 1.三台服务 准备三台Centos7服务,基础环境从伪分布式环境克隆过来. 133 hop01,134 hop02,136 ...

随机推荐

  1. java_字符

    例一:数据类型转换 package javaweb1200; public class 字符就是数字吗 { public static void main(String[] args) { Syste ...

  2. Java(Android)编程思想笔记01:多态性的理解

    1. 多态的定义: 指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式. (发送消息就是函数调用)   2. 多态的理解    多态是面向对象的重要特性,简 ...

  3. ServiceStack.Redis客户端访问库几项事项

    1)RedisClient的SetValue(string key, byte[]val)方法,如果val的长度为0,则redis服务器库中设置该key值失败. 2)PoolRedisClientMa ...

  4. centos安装ftp

    yum install -y vsftpd安装vsftpd service vsftpd start 启动vsftpd vim /etc/vsftpd/vsftpd.conf 将anonymous_e ...

  5. tomcat部署应用的几种方式

    接着上篇 tomcat配置详解,再来学习下如何在tomcat下部署应用 1.部署方式 第一种,最常用,直接把WAR包或者文件夹直接放到webapps目录下面,这时访问路径就是WAR包或者文件夹的名称. ...

  6. CF Amr and Pins (数学)

    Amr and Pins time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  7. MapReduce的方式进行HBase向HDFS导入和导出

    附录代码: HBase---->HDFS import java.io.IOException; import org.apache.hadoop.conf.Configuration; imp ...

  8. 使用迭代器遍历List的时候修改List报ConcurrentModificationException异常的解决办法

    为了避免这种异常,我们可以使用CopyOnWriteArrayList来代替ArrayList,CopyOnWriteArrayList支持并发访问,所以同时进行迭代和修改是没有问题的.

  9. IIS 发布网站到外网

    前段时间做了一个项目在局域网中测试后要发布到外网上,一时间不知怎么搞,以为直接在IIS中修改发布时的IP就可以了,但是不可行,经过摸索终于成功发布到外网,下面是具体步骤. 前期准备:公网IP,掩码,网 ...

  10. pdf文件流生成pdf文件

    protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { Code.Login Starr_mode ...