Spark小课堂Week4 从控制台看Spark逻辑结构
Spark小课堂Week4 从控制台看Spark逻辑结构
层级关系:
从监控控制台,我们可以看到如下关系:
- 一个 Job 包含 n Stage
- 一个 Stage 包含 n Task
Job0解决什么问题?
在控制台,有一个Job0,负责进行数据接收。
其实这个程序并没有分布式的需求,为什么要采用Job来管理:
主要解决了几个问题:
- 程序出现异常,Job可以自动重启。
- 程序运行过程中有监控、度量等需要,Job可以自动完成。
- 如何确定运行的节点,Job可以自动调度。
所以Job就是一个有异常恢复、可管理的、自动调度的Runnable程序。
Spark的逻辑层次:
Spark中三个逻辑层次解决的问题:
- Job 解决应用程序的管理问题,出现异常的话一般是应用程序异常。
- Stage 对应用程序以节点间数据交换为依据切分,Stage之间有运行顺序要求,出现异常的话一般是shuffle的问题。
- Task 完全并发运行算法的线程,无运行顺序要求,出现异常的话一般是算法程序错误。

分布式系统设计关键:
分布式系统相比于普通系统,主要的区别在于:
1.由于存在节点间数据交换,所有独有数据shuffle操作。
2.需要分布式的通讯支持,一般采用RPC方式,包括Akka,Netty等支持。
3.由于可靠性降低,需要完善的异常处理机制。
关于
小课堂是在公司进行内部交流的一系列主题,偏基础,但是比较零散,持续更新中。
Spark小课堂Week4 从控制台看Spark逻辑结构的更多相关文章
- Spark小课堂Week7 从Spark中一个例子看面向对象设计
Spark小课堂Week7 从Spark中一个例子看面向对象设计 今天我们讨论了个问题,来设计一个Spark中的常用功能. 功能描述:数据源是一切处理的源头,这次要实现下加载数据源的方法load() ...
- Spark小课堂Week3 FirstSparkApp(RDD开发)
Spark小课堂Week3 FirstSparkApp 问题:Java有哪些数据结构 大致有如下几种,其中List与Map是最重要的: List Map Set Array Heap Stack Qu ...
- Spark小课堂Week1 Hello Spark
Spark小课堂Week1 Hello Spark 看到Spark这个词,你的第一印象是什么? 这是一朵"火花",官方的定义是Spark是一个高速的.通用的.分布式计算系统!!! ...
- Spark小课堂Week6 启动日志详解
Spark小课堂Week6 启动日志详解 作为分布式系统,Spark程序是非常难以使用传统方法来进行调试的,所以我们主要的武器是日志,今天会对启动日志进行一下详解. 日志详解 今天主要遍历下Strea ...
- Spark小课堂Week5 Scala初探
Spark小课堂Week5 Scala初探 Scala是java威力加强版. 对Java的改进 这里会结合StreamingContext.scala这个代码说明下对Java的改进方面. 方便测试方式 ...
- Spark小课堂Week3 FirstSparkApp(Dataframe开发)
Spark小课堂Week3 FirstSparkApp(代码优化) RDD代码简化 对于昨天练习的代码,我们可以从几个方面来简化: 使用fluent风格写法,可以减少对于中间变量的定义. 使用lamb ...
- Spark小课堂Week2 Hello Streaming
Spark小课堂Week2 Hello Streaming 我们是怎么进行数据处理的? 批量方式处理 目前最常采用的是批量方式处理,指非工作时间运行,定时或者事件触发.这种方式的好处是逻辑简单,不影响 ...
- Spark大数据处理 之 从WordCount看Spark大数据处理的核心机制(1)
大数据处理肯定是分布式的了,那就面临着几个核心问题:可扩展性,负载均衡,容错处理.Spark是如何处理这些问题的呢?接着上一篇的"动手写WordCount",今天要做的就是透过这个 ...
- Spark大数据处理 之 从WordCount看Spark大数据处理的核心机制(2)
在上一篇文章中,我们讲了Spark大数据处理的可扩展性和负载均衡,今天要讲的是更为重点的容错处理,这涉及到Spark的应用场景和RDD的设计来源. Spark的应用场景 Spark主要针对两种场景: ...
随机推荐
- 关于通过adb启动Activity、activity、service以及发送broadcast的命令
一.启动activity: $ adb shell$ am start -n {包名}/{包名}.{活动名称} 如:启动一个名叫MainActivity的活动 # am start -n com.ex ...
- org.apache.hadoop.fs-BlockLocation
工具类吧 package org.apache.hadoop.fs; import org.apache.hadoop.io.*; //IO包下的类还没涉及到.遇到一个分析一个. import jav ...
- 还在用GCD?来看看NSOperation吧
在iOS开发中,谈到多线程,大家第一时间想到的一定是GCD.GCD固然是一套强大的多线程解决方案,能够解决绝大多数的多线程问题,但是他易于上手难于精通且到处是坑的特点也注定了想熟练使用它有一定的难度. ...
- Android OkHttp详解
来源 http://frodoking.github.io/2015/03/12/android-okhttp/ 编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技 ...
- Android 自学之网格试图(GridView)和图片切换器(ImageSwitcher)功能和用法
网格试图(GridView)用于在界面上按行,列分布的方式来显示多个组件. GridView和ListView有共同的父类:AbsListView,因此GridView和ListView具有一定的相似 ...
- [改善Java代码]建议采用的顺序是 List<T>、List<?>、List<Object>
建议98:建议采用的顺序是 List<T>.List<?>.List<Object> List<T>.List<?>.List<Obj ...
- Git - Download for Linux and Unix
It is easiest to install Git on Linux using the preferred package manager of your Linux distribution ...
- NPOI读取Excel表格类
public class NPOIHelper { private HSSFWorkbook workbook; public static IWorkbook Lo ...
- Unity3d-UI插件EZGUI官方视频教程
Showcase Teaser (D/L) – Showcases some of the things that can be accomplished using EZ GUI.#1 – Butt ...
- iPad accessory communication through UART
We manufacture a new accessory for iPad/iPhone which should transfer commands to the iPad. We like t ...