spark学习笔记(三)——sparkcore基础知识

目录

端口号说明

spark核心模块

spark core

spark SQL

spark streaming

MLlib

GraphX

spark核心组件

driver

executor

Master&Worker

ApplicationMaster

运行架构

提交任务流程

Yarn Client

Yarn Cluster


端口号说明

4040(计算):Spark 查看当前 Spark-shell 运行任务情况;

8080(资源):Standalone 模式下,Spark Master Web端口号;

7077:Spark Master 内部通信服务;

18080:Spark 历史服务器端口号;

8088:Hadoop YARN 任务运行情况查看端口号。

spark核心模块

 spark SQL、spark Streaming、spark GraphX、spark MLlib

spark core

Spark Core 提供了 Spark 最基础与最核心的功能。
Spark 其他的功能 都是在 Spark Core 的基础上进行扩展的。

spark SQL

Spark SQL Spark 用来操作结构化数据的组件。
通过 Spark SQL ,用户可以使用 SQL 或HQL(hive)来查询数据。

spark streaming

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

MLlib

MLlib Spark 提供的一个机器学习算法库。

GraphX

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

spark核心组件

Spark的核心是一个计算引擎

driver

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

简单理解,driver 就是驱使整个应用运行起来的程序。

主要负责:

(1)将用户程序转化为作业(job);

(2)在 Executor 之间调度任务(task) ;

(3)跟踪 Executor 的执行情况;

(4)通过 UI 展示查询运行情况。 

executor

executor是集群中Worker的一个 JVM 进程,负责在 Spark 作业中运行具体任务,任务之间相互独立。

Spark应用启动,Executor节点同时启动,且存在于Spark应用的生命周期。

如果有Executor节点发生了故障或崩溃,spark会将出错节点上的任务调度到其他 Executor节点上继续运行。

Executor 核心功能:
(1)负责运行组成 Spark 应用的任务,并将结果返回给驱动器;
(2) 为用户程序中要求缓存的 RDD 提供内存式存储;
(3)RDD 直接缓存在 Executor 进程内,任务可以在运行时充分利用缓存数据加速运算。

Master&Worker

Master 和 Worker:这里的 Master 是一个进 程,主要负责资源的调度和分配,进行集群监控等;Worker也是进程,一个Worker运行在集群中的一台服务器上,Master分配资源Worker对数据进行并行的处理和计算。

ApplicationMaster

ApplicationMaster用于向资源调度器申请执行任务的资源容器Container,运行用户自己的程序任务 job,监控整个任务的执行,跟踪整个任务的状态,处理任务失败等异常情况。

运行架构

Driver:负责管理整个集群中的作业任务调度。

Executor:负责实际执行任务。

提交任务流程

一般会有两种部署执行的方式:Client 和 Cluster

两种模式主要区别在于:Driver程序的运行节点位置。Client模式将用于监控和调度的Driver模块在客户端执行。Cluster模式将用于监控和调度的Driver模块在Yarn集群中执行。

Yarn Client

(1)Driver在任务提交的本地机器上运行;

(2)Driver和ResourceManager通讯,申请启动ApplicationMaster;

(3)ResourceManager分配Container,在合适的NodeManager上启动ApplicationMaster;

(4)ApplicationMaster负责向ResourceManager申请Executor内存;

(5)ResourceManager分配container;

(6)ApplicationMaster在指定的NodeManager上启动Executor进程;

(7)Executor向Driver反向注册;

(8)Executor全部注册完成后Driver开始执行;

(9)执行main函数,执行Action算子(Action算子触发一个 Job),根据宽依赖划分stage,每个 stage生成对应的TaskSet,task 分发到各个 Executor 上执行。

Yarn Cluster

(1)Driver任务提交;

(2)Driver和ResourceManager通讯,申请启动ApplicationMaster;

(3)ResourceManager分配Container,在合适的NodeManager上启动ApplicationMaster,这个ApplicationMaster就是Driver;

(4)ApplicationMaster负责向ResourceManager申请Executor内存;

(5)ResourceManager分配container;

(6)ApplicationMaster在指定的NodeManager上启动Executor进程;

(7)Executor向Driver反向注册;

(8)Executor全部注册完成后Driver开始执行;

(9)执行main函数,执行Action算子(Action算子触发一个 Job),根据宽依赖划分stage,每个 stage生成对应的TaskSet,task 分发到各个 Executor 上执行。

本文仅仅是学习笔记的记录!!!
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spark是一个开源的大数据处理框架,它提供了高效的数据处理能力和易用的API,支持多种数据处理模式,包括批处理、流处理和机器学习等。Spark的核心是分布式计算引擎,它可以在集群中运行,利用多台计算机的计算能力来处理大规模数据。Spark的优势在于其高效的内存计算和强大的数据处理能力,可以在处理大规模数据时提供更快的计算速度和更高的性能。Spark的生态系统也非常丰富,包括Spark SQLSpark Streaming、MLlib和GraphX等组件,可以满足不同的数据处理需求。 ### 回答2: Spark是一种大规模数据处理引擎,可以较快地处理大数据Spark并不是单独的一种工具,而是一系列的工具和库的整合。它具备高效的内存计算功能,能够在数秒或数分钟内完成数据处理任务。 Spark的核心是分布式计算引擎,通过将数据分成多个部分进行处理,缩短了计算时间。Spark基于RDD(弹性分布式数据集)进行数据处理,RDD是一种可缓存、可重用和容错的数据结构。RDD抽象了数据分布和分区,提供了简单的API。 Spark的架构包括四个组件:Driver、Cluster manager、Worker、和 Executor。其中Driver是Spark应用程序的主程序,Cluster manager通过Master节点来管理各个Worker节点,Worker节点包含了整个Spark集群的计算资源,Executor执行计算任务。 Spark支持多种编程语言,包括Scala、Java、Python和R。其中Scala是Spark的主要语言,因为它能够将Spark的API最大程度地利用。 除了分布式计算引擎外,Spark还提供了多种库和工具,包括Spark SQLSpark Streaming、MLlib和GraphX。Spark SQL是一种用于结构化数据处理的库,能够使用SQL语句进行数据查询;Spark Streaming可以实时处理数据流,包括文本和图像等;MLlib是实现了多种机器学习算法的库,包括分类、回归、聚类和协同过滤;GraphX可以用于图计算和图分析领域。 总之,Spark是一种强大的大数据处理引擎,能够通过分布式计算架构实现快速的数据处理。它提供了多种语言支持和众多的库和工具,方便用户处理各类数据。 ### 回答3: Spark是一款开源的、分布式的大数据处理框架,它的出现将大数据处理的速度提升到了一个全新的水平。Spark的特点在于它的内存计算引擎,这使得Spark的运行速度比传统的MapReduce处理速度要快很多,同时也比传统的Hadoop更加灵活。 Spark可以用于处理各种大数据应用场景,包括批处理、交互式查询、实时流处理等等。同时,Spark的生态系统非常丰富,有众多的开源库和工具可以使用,例如:Spark SQLSpark Streaming、GraphX、MLlib等等。 Spark的运行环境需要一个集群,因为Spark是分布式的,它可以通过在集群中多个节点上并行执行任务来提升处理速度,而且Spark支持多种集群管理和资源调度工具,例如:Apache Mesos、Hadoop YARN、Spark自带的资源调度程序等等。 Spark的编程接口非常灵活,可以使用Scala、Java、Python等多种编程语言来编写Spark程序。无论是使用哪种编程语言,Spark都提供了相应的API和工具,例如:Spark SQLSpark Streaming等。 总之,Spark是一个非常强大的大数据处理框架,它的出现是对传统的Hadoop框架的一种补充和升级,不仅可以处理海量的数据,而且可以提供更快速的数据处理速度和更强大的数据处理能力。因此,Spark已经成为现代大数据处理和机器学习领域中非常重要的工具之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值