设为首页 加入收藏

TOP

Spark Core 概念学习
2019-03-20 01:19:14 】 浏览:50
Tags:Spark Core 概念 学习

通过对spark core的核心概念学习,可以更好的了解spark的运行机制和生命周期

基本概念:

Application:

spark应用程序,一个应用程序由一个driver进程和一些executor进程组成。

Application jar:

包含我们自己编写的spark应用程序的jar包,我们编写的程序打成的jar包不应该包含Hadoop和Spark的类库,这些jar包在运行时会被自动添加。

Driver program:

它是进程级别的,driver会运行应用程序的main() 方法,并创建一个SparkContext。

Cluster manager:

用于获取集群资源的外部服务,若为standalone则为master,yarn模式则为resourcemanager。

Deploy mode:

分为两种,一种是cluster模式,该模式下应用程序的driver进程会运行在集群内部;另一种是client模式,此模式下driver进程会运行在集群外。

Worker node:

工作节点,若为standalone模式,则工作节点为worker,若为yarn模式,则工作节点为nodemanager。

Executor:

在工作节点上为应用程序启动的进程,一个executor可以运行多个task,并且把数据缓存在内存或这磁盘中,每一个应用程序有多个executor。

Job:

并行的包含多个task的计算任务,它在遇到action时被触发,也就是说,一个application可能会有多个job任务。

Stage:

每一个作业都会被拆分成包含一部分task的集合,这样的集合被称为stage,遇到shuffle时会产生。

Spark运行过程概述

Spark程序,主要由Driver端的SparkContext对象进行协调。具体来说,SparkContext可以连接到多种类型的集群管理器上,由这些集群管理器在应用程序之间分配资源。一旦连接上,Spark就会获得executors,这些executors运行计算和缓存数据。


7529972-fea14072f5ee365d.png
spark运行架构图

关于此架构有几点说明:

1、每一个spark应用程序都有自己的executors进程,这些executors在整个应用程序的生命周期内都是存活的,并以多线程的方式运行task。每一个application都会把各自的executors隔离起来,这样做利于在调度端和执行程序端相互隔离应用程序。但缺点是不同的spark应用程序之间不能共享数据。

2、Spark对于运行的集群管理者是不认知的(无论是master还是resourcemanager),一旦拿到executor进程后,就可以进行交互了,一种模式的代码可以同时支持其他模式下运行。

3、Driver program必须监听和接受从其他executors传来的连接和存活时间等信息,因此,我们的driver program必须能和工作节点连接通。

4、Driver program是在集群中调度tasks的,driver要尽可能的靠近工作节点,最好是在同一个网段。

关于Spark On Yarn的一点见解:

采用yarn模式有许多好处,首先不需要搭建spark集群,只需找一到两台机器部署spark当作客户端即可。因此修改了配置参数只需修改一两台的即可,不用维护整个spark集群。

这里说明一下为什么是一到两台

yarn-client模式提交作业的话,作业的Driver端是运行在客户端的,且driver启动需要core和memory资源,提交作业过多,会导致spark所在机器资源不足,无法继续提交。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇初识Spark之 大数据技术提要 下一篇2018 SuperMap iObjects 常见问题..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目