Spark小课堂Week4 从控制台看Spark逻辑结构

Spark小课堂Week4 从控制台看Spark逻辑结构

层级关系:

从监控控制台,我们可以看到如下关系:

  • 一个 Job 包含 n Stage
  • 一个 Stage 包含 n Task

Job0解决什么问题?

在控制台,有一个Job0,负责进行数据接收。
其实这个程序并没有分布式的需求,为什么要采用Job来管理:

主要解决了几个问题:

  1. 程序出现异常,Job可以自动重启。
  2. 程序运行过程中有监控、度量等需要,Job可以自动完成。
  3. 如何确定运行的节点,Job可以自动调度。

所以Job就是一个有异常恢复、可管理的、自动调度的Runnable程序。

Spark的逻辑层次:

Spark中三个逻辑层次解决的问题:

  1. Job 解决应用程序的管理问题,出现异常的话一般是应用程序异常。
  2. Stage 对应用程序以节点间数据交换为依据切分,Stage之间有运行顺序要求,出现异常的话一般是shuffle的问题。
  3. Task 完全并发运行算法的线程,无运行顺序要求,出现异常的话一般是算法程序错误。

20073444_nICs

分布式系统设计关键:

分布式系统相比于普通系统,主要的区别在于:
1.由于存在节点间数据交换,所有独有数据shuffle操作。
2.需要分布式的通讯支持,一般采用RPC方式,包括Akka,Netty等支持。
3.由于可靠性降低,需要完善的异常处理机制。

关于

小课堂是在公司进行内部交流的一系列主题,偏基础,但是比较零散,持续更新中。

posted @ 2016-07-24 14:36  哎哟慰  阅读(350)  评论(0编辑  收藏  举报