spark部署、计算模型、内部执行原理、工作机制详解

转载 2016年05月31日 14:16:26

1、spark的安装和部署


第二章 安装和部署简单,不说了

===========================

第三章: spark计算模型


blockManager管理rdd的物理分区,每个block就是节点上对应的一个数据块,可以存储在内存或者磁盘上,而rdd中的partition是一个逻辑数据块,对应相应的物理块block

本质上一个rdd在代码中相当于数据的一个元数据结构。 存储着数据分区以及逻辑结构映射关系。 存储着rdd之前的依赖转换关系。


在spark的执行过程中

在物理上,rdd对应实质上是一个元数据结构。存储着block node等的映射关系,以及其他的元数据信息,一个rdd就是一组分区,在物理数据存储上,rdd的每个分区对应的就是一个block,block可以存储在内存中,当内存不够的时候可以存储在磁盘上。

每个block中存储着rdd所有数据项目的一个子集,暴露给用户的可以是一个block的迭代器, 例如:用户可以通过mapPartitions获取分区迭代器进行操作。也可以就是一个数据项例如:通过map函数对每个数据项并行计算,本事会在后面章节具体介绍数据管理的底层实现

从hdfs等外部存储作为输入数据源,数据按照hdfs中的数据分布策略进行数据分区,hdfs中的一个block队员spark的一个分区,同事spark支持重分区,数据通过spark 默认的或者用户自定义的分区器决定数据库分布在那些节点,例如 支持hash分区,按照数据项的key取hash值,hash值相同的放在同一个分区中,和range分区,将属于同一数据范围的数据放入同一分区中,等分区策略

下面具体介绍算子功能。


算子很多,分为三种, transfomation  还有action

第四章:  spark工作机制详解

spark应用提交后精力了一些列的转化,最后成为task在每个节点上执行,spark应用转换,rdd的action算子触发job的提交,提交到spark中的job生成 rdd  dag 由dagscheduler转化为stage dag, 每个stage中产生相应的task集合, taskscheduler将任务分发到executor执行,没给任务对于相应的一个数据快, 使用用户定义的函数处理数据块。


作业执行流程描述如下:

用户启动客户端,之后客户端运行用户程序, 启动drive 进程,在driver中启动或者实例化dagscheduler等组件,客户端的driver想master注册

workder向master注册,master命令workder启动executtoer,worker通过创建 executorrunner线程, 在executorrunner线程内部启动executorbackend进程。

 executorbackend启动后,想客户端driver进程内的schedulerbackernd注册, 这样driver进程就能找到计算资源, deirver 的dagcheduler解析应用中的rdd  dag并生成相应的stage ,每个stage包含的taskset 通过taskscheduler分配给executor,在 executor内部启动线程池 并行化执行 task

调度:

application调度,job调度,stage的调度,task的调度

不同的模式有不同的调度策略

standalone,默认情况下,用户向以standalone模式运行的spark集群提交引用使用fifo 的额顺序进行调度。

mesos

yarn

三种运行模式都不能提供跨应用的共享内存。

fifo的调度代码

还有fair调度方式












Spark(四) -- Spark工作机制

以一个简单的WordCount代码为例sc.textFile("hdfs://...").flatMap(_.split(" ")).map(_,1).reduceByKey(_+_).map(x =...
  • qq1010885678
  • qq1010885678
  • 2015年05月14日 23:38
  • 2996

Spark调度机制:1)简介&基本概念

1.Spark的调度机制简介 Spark的调度机制有2类,主要是集群调度机制和应用程序内部的调度机制。理解其中的原理,便于我们更深入地了解Spark和性能优化。 集群资源调度由集群资源管理器(Cl...
  • jiangpeng59
  • jiangpeng59
  • 2016年11月13日 19:04
  • 535

Spark分布式计算和RDD模型研究

1背景介绍现今分布式计算框架像MapReduce和Dryad都提供了高层次的原语,使用户不用操心任务分发和错误容忍,非常容易地编写出并行计算程序。然而这些框架都缺乏对分布式内存的抽象和支持,使其在某些...
  • dc_726
  • dc_726
  • 2014年11月22日 14:54
  • 15539

Spark入门之五:SparkSQL的原理以及架构

1、SparkSQL的发展历程 1.1 Hive and Shark SparkSQL的前身是Shark,给熟悉RDBMS但又不理解MapReduce的技术人员提供快速上手的工具,Hive应运...
  • sun7545526
  • sun7545526
  • 2015年11月07日 21:03
  • 3248

spark计算模型

spark计算模型 与Hadoop 不同,Spark 一开始就瞄准性能,将数据(包括部分中间数据)放在内存,在内存中计算。用户将重复利用的数据缓存到内存,提高下次的计算效率,因此Spark 尤其适合...
  • qq_16365849
  • qq_16365849
  • 2016年02月07日 11:15
  • 1692

spark工作机制

spark这里以wordcount程序为例,演示spark的基本流程和原理基本概念 RDD:弹性分布式数据集。数据存放在各个节点上。spark对RDD进行操作。 算子:各种操作/行动。spark中的函...
  • u011283591
  • u011283591
  • 2017年03月23日 16:58
  • 475

【Spark系列】三、Spark工作机制

Spark工作机制 Client Driver程序 Spark Context ...
  • zkq_1986
  • zkq_1986
  • 2017年01月26日 20:06
  • 461

Spark(六) -- Spark计算模型

What is RDD? A Resilient Distributed Dataset(RDD),分布式弹性数据集,是Spark上的一个核心抽象 表示用于并行计算的,不可修改的,对数据集合进行分...
  • qq1010885678
  • qq1010885678
  • 2015年05月17日 12:57
  • 1716

Spark工作机制

一、应用执行机制 一个应用的生命周期即,用户提交自定义的作业之后,Spark框架进行处理的一系列过程。 在这个过程中,不同的时间段里,应用会被拆分为不同的形态来执行。 1、应用执行过...
  • wwwxxdddx
  • wwwxxdddx
  • 2016年05月03日 19:21
  • 552

Spark 内存架构

作者本人经常在StackOverflow上回答一个关系Spark架构的问题,发现整个互联网都没有一篇文章能对Spark总体架构进行很好的描述,作者可怜我们这些菜鸟,写了这篇文章,太感动了。本文读者需要...
  • wisgood
  • wisgood
  • 2016年05月17日 14:50
  • 2381
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spark部署、计算模型、内部执行原理、工作机制详解
举报原因:
原因补充:

(最多只允许输入30个字)