加载中...
配置Spark环境及架构介绍
发表于:2021-09-07 | 分类: 《Apache Spark设计与实现》读书笔记
字数统计: 440 | 阅读时长: 1分钟 | 阅读量:

如何在IDEA中配置Spark开发环境?

  1. 首先自行下载scala,并在IDEA中加入scala的SDK,因为spark2.4.3依赖scala2.11,故这里下载scala2.11.11

  1. 并在pom.xml中添加spark2.4.3的依赖
    1
    2
    3
    4
    5
    6
    7
    <dependencies>
    <dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.11</artifactId>
    <version>2.4.3</version>
    </dependency>
    </dependencies>

下面介绍Spark的Standalone模式的系统架构

  • 上图所示即为Standalone模式架构图,下面将详细介绍
  • 首先需要了解几个概念:
    • MasterNode:该节点上常驻Master进程,负责管理全部WorkerNode
    • WorkerNode:该节点上常驻Worker进程,负责管理执行Spark任务
    • Spark作业:就是一个Spark程序,例如WordCount.scala
    • Drive进程:就是运行Spark程序中main()函数的进程
    • Executor:就是Spark计算资源的一个单位,用这个单位来占用集群资源,然后分配具体的task给Executor。在Standalone模式中,启动Executor实际上是启动图中的CoarseGrainedExecutorBackend的JVM进程
    • Task:Driver在运行main()函数时,会把一个作业拆成多个task,以线程方式在Executor执行如map算子、reduce算子。每个Executor具有多少个cpu就可以运行多少个task,如图中八个cpu两个Executor,故每个Executor可以并行运行4个task
  • 然后介绍一下流程:
    1. 启动Spark集群时,Master节点会启动Master进程,Worker节点上启动Worker进程
    2. 接下来就提交作业给Master节点,Master节点会通知Worker节点启动Executor
    3. 分配task到Executor上执行,每个Executor可以执行多个task,每个task启动一个线程来执行
  • 还有一些细节:
    • Worker进程上有一个或多个ExecutorRunner对象,每个对象可以控制一个CoarseGrainedExecutorBackend进程的启动和关闭
上一篇:
RDD开发实战
下一篇:
初识Spark与工作原理
本文目录
本文目录