首页 > 其他分享 >spark简介

spark简介

时间:2024-05-09 16:01:24浏览次数:21  
标签:简介 Hadoop 节点 RDD Master Executor spark Spark

一、Spark简介

Spark 是一种由 Scala 语言开发的快速、通用、可扩展的大数据分析引擎。

Spark主要由五部分组成:

  • Spark Core

Spark Core 中提供了 Spark 最基础与最核心的功能,Spark 其他的功能如:Spark SQL,Spark Streaming,GraphX, MLlib 都是在 Spark Core 的基础上进行扩展的

  • Spark SQL

Spark SQL 是 Spark 用来操作结构化数据的组件。通过 Spark SQL,用户可以使用 SQL或者 Apache Hive 版本的 SQL 方言(HQL)来查询数据。

  • Spark Streaming

Spark Streaming 是 Spark 平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的 API。

  • Spark MLlib

MLlib 是 Spark 提供的一个机器学习算法库。MLlib 不仅提供了模型评估、数据导入等额外的功能,还提供了一些更底层的机器学习原语

  • Spark GraphX

GraphX 是 Spark 面向图计算提供的框架与算法库。

Spark与Hadoop的区别:

Spark一直被认为是Hadoop的升级版,在数据处理方面,基于内存,优于hadoop的MapReduce框架,但需要注意的是Spark取代不了Hadoop,Spark没有存储,只是负责处理,而且Spark可以独立运行,也可以集成到Hadoop中,去替代MapReduce

  1. spark基于内存,可能会出现资源不足的情况
  2. Hadoop的task是一个个进程,spark是一个个线程
  3. spark的计算模式也属于MapReduce,但不局限与map和reduce操作
  4. Spark和Hadoop的根本差异是多个作业之间的数据通信问题 : Spark多个作业之间数据通信是基于内存,而 Hadoop 是基于磁盘。

二、 Spark架构

Spark架构是一个标准的Master-slave架构。

1.Driver

Spark 驱动器节点,用于执行 Spark 任务中的 main 方法,负责实际代码的执行工作。

实际上,我们无法准确地描述 Driver 的定义,因为在整个的编程过程中没有看到任何有关Driver 的字眼。所以简单理解,所谓的 Driver 就是驱使整个应用运行起来的程序,也称之为Driver 类。

2.Executor

Spark Executor 是集群中工作节点(Worker)中的一个 JVM 进程,负责在 Spark 作业中运行具体任务(Task),任务彼此之间相互独立。

Spark 应用启动时,Executor 节点被同时启动,并且始终伴随着整个 Spark 应用的生命周期而存在。如果有 Executor 节点发生了故障或崩溃,Spark 应用也可以继续执行,会将出错节点上的任务调度到其他 Executor 节点上继续运行。

Executor 有两个核心功能:

  • 负责运行组成 Spark 应用的任务,并将结果返回给驱动器进程
  • 它们通过自身的块管理器(Block Manager)为用户程序中要求缓存的 RDD 提供内存式存储。RDD 是直接缓存在 Executor 进程内的,因此任务可以在运行时充分利用缓存数据加速运算。

3.Master & Worker

Spark 集群的独立部署环境中,不需要依赖其他的资源调度框架,自身就实现了资源调度的功能,所以环境中还有其他两个核心组件:Master 和 Worker,这里的 Master 是一个进程,主要负责资源的调度和分配,并进行集群的监控等职责,类似于 Yarn 环境中的 RM, 而Worker 呢,也是进程,一个 Worker 运行在集群中的一台服务器上,由 Master 分配资源对数据进行并行的处理和计算,类似于 Yarn 环境中 NM。

4.Cluster manager

集群资源管理器(例如,Standlone Manager,Mesos,YARN)

Standalone : spark原生的资源管理,由Master负责资源的分配

Apache Mesos:与hadoop MR兼容性良好的一种资源调度框架

Hadoop Yarn: 主要是指Yarn中的ResourceManager

5.ApplicationMaster

Hadoop 用户向 YARN 集群提交应用程序时,提交程序中应该包含 ApplicationMaster,用于向资源调度器申请执行任务的资源容器 Container,运行用户自己的程序任务 job,监控整个任务的执行,跟踪整个任务的状态,处理任务失败等异常情况。

 

三. Spark支持的运行模式

1. standalone模式

standalone是Spark实现的资源调度框架,由客户端、Master节点和多个Worker节点组成。

其中SparkContext既可以运行在Master节点上,也可以运行在客户端。

2. spark on yarn

大致流程:

  • 客户端提交应用到RM,RM找一个节点创建ApplicationMaster;接着AM向RM申请资源,RM返回资源列表,并选取nodemanager在其Container中创建Spark执行器对象Executor。
  • Executor创建好后,通知AM可以将任务发送过来,AM分解任务并发送给Executor,开始执行任务。
  • Executor向AM汇报任务的执行情况,当任务执行结束之后,AM申请注销资源。

 

四.RDD(弹性分布式数据集)

RDD概念

RDD特性

RDD运行过程

 

RDD 是 Spark 提供的最重要的抽象概念,它是一种有容错机制的特殊数据集合,可以分布在集群的结点上,以函数式操作集合的方式进行各种并行操作。

通俗点来讲,可以将 RDD 理解为一个分布式对象集合,本质上是一个只读的分区记录集合。每个 RDD 可以分成多个分区,每个分区就是一个数据集片段。一个 RDD 的不同分区可以保存到集群中的不同结点上,从而可以在集群中的不同结点上进行并行计算。

 

标签:简介,Hadoop,节点,RDD,Master,Executor,spark,Spark
From: https://www.cnblogs.com/sleep24/p/18182291

相关文章

  • 设备驱动程序简介
    设备驱动程序简介概述:Linux驱动程序的核心:作为一个黑盒子,使某个特定硬件相应相应的内部编程接口,如posix。其需要隐藏体的工作细节。Linux驱动程序编写为什么简单:其是使独立于内核的其他部分而建立的,其是模块化的。驱动程序的作用驱动程序的妥协:在编写驱动程序所需要的时......
  • openGauss CopyManager类简介
    CopyManager类简介CopyManager是openGaussJDBC驱动中提供的一个API接口类,用于批量向openGauss中导入数据。CopyManager的继承关系CopyManager类位于org.postgresql.copyPackage中,继承自java.lang.Object类,该类的声明如下:publicclassCopyManagerextendsObject构造方法......
  • 【HEVC简介】High Level Syntax
    NAL      NAL:NetworkAbstractLayer,网络抽象层,编码后的bitstream就是由一个个NAL组成。NAL由一个2Bytes的NALheader和NALpayloaddata两部分组成。NAL分为VCL(videocodinglayer)NAL和non-VCLNAL两类,其中VCLNAL包含一个picture的数据,而non-VCLNAL包含与多个pic......
  • 【HEVC简介】CTU、CU、PU、TU结构
     参考文献:见《HighEfficiencyVideoCoding(HEVC)》BlockStructuresandParallelism FeaturesinHEVC章节 CTU:codingtreeunit,编码树单元,LCU    对于YUV=420格式的彩色视频:一个CTU由一个CTBofthelumasamples、2个CTBsofthechromasamples和相关的语法......
  • 视频压缩技术简介
    H264压缩技术H264的基本原理其实非常简单,我们就简单的描述一下H264压缩数据的过程。通过摄像头采集到的视频帧(按每秒30帧算),被送到H264编码器的缓冲区中。编码器先要为每一幅图片划分宏块。H264采用的核心算法是帧内压缩和帧间压缩,帧内压缩是生成I帧的算法,帧间压缩是生成B帧......
  • JavaScript-DOM简介
    JavaScript-DOM简介之前我们说过JavaScript有三部分组成ECMAscript,BOM,DOM,之前我们都在了解JavaScript的语法即ECMAScript,今天我们开始了解DOM(文档对象模型(DocumentobjectModel),操作网页上的元素的API)什么是DOMDOM:DocumentObjectModel,文档对象模型。DOM为文档提供了结......
  • 单片机的发展历史及简介
    单片机的发展历史单片机是单片微型计算机(Singlechipmicrocomputer)的简称,又称为微控制器(MicroControlUnit,MCU)。目前,众多厂商将单片机称为微控制器,虽然这样看上去比单片机的名字显得更高级些,但是单片机这个词更能反映其本质特点。单片机是20世纪70年代中期发展起来的一种超大规......
  • C#中的记录(record)简介
    record是一种语法糖。标准的record用法有“recordclass”和"recordstruct"两种,分别表示记录类和记录构造。是“引用”和“值”的差别。单独使用record表示"recordclass"。语法:脱胎于构造函数。 recordPerson(stringXm,intNl); 或者recordPerson(stringXm,intNl)......
  • Multisim14--软件简介及安装教程(内含安装包)
    安装包见文章末尾 一、软件简介Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。工程师们可以使用Multisim交互式地搭建电路原......
  • hive on spark 优化-SQL层面
    HiveOnSpark调优本篇博客将从hiveonspark的SQL层面,来对任务做一些优化。下面的优化,从这几个方面来讲:Group、Join、并行度、小文件。Group、Join$\color{ForestGreen}{小提示:}$Group和Join的不同之处在于:Group需要ReduceJoin可以没有Reduce其实无论是Group还是Joi......