精华内容
参与话题
问答
  • Spark的四种运行模式

    千次阅读 2017-04-11 13:14:37
    构建一个由Master+Slave构成的Spark集群,Spark运行在集群中。 Spark on Yarn模式 Spark客户端直接连接Yarn。不需要额外构建Spark集群。 Spark on Mesos模式 Spark客户端直接连接Mesos。

    介绍

    • 本地模式

    Spark单机运行,一般用于开发测试

    • Standalone模式

    构建一个由Master+Slave构成的Spark集群,Spark运行在集群中。

    • Spark on Yarn模式

    Spark客户端直接连接Yarn。不需要额外构建Spark集群。

    • Spark on Mesos模式

    Spark客户端直接连接Mesos。不需要额外构建Spark集群。

    启动方式: spark-shell.sh(Scala)

    spark-shell通过不同的参数控制采用何种模式进行。 涉及两个参数:

    1
    2
    3
    4
    --master MASTER_URL         spark://host:port, mesos://host:port, yarn, or local.
    --deploy-mode DEPLOY_MODE   Whether to launch the driver program locally ("client") or
                                on one of the worker machines inside the cluster ("cluster")
                                (Default: client).
    

    –master参数用于指定采用哪种运行模式。
    对于Spark on Yarn模式和Spark on Mesos模式还可以通过 –deploy-mode参数控制Drivers程序的启动位置。

    • 进入本地模式:
    ./spark-shell --master local
    ./spark-shell --master local[2]  # 本地运行,两个worker线程,理想状态下为本地CPU core数
    • 进入Standalone模式:
    ./spark-shell --master spark://192.168.1.10:7077

    备注:测试发现MASTER_URL中使用主机名替代IP地址无法正常连接(hosts中有相关解析记录),即以下命令连接不成功:

    ./spark-shell --master spark://ctrl:7077  # 连接失败
    • Spark on Yarn模式
    1
    2
    3
    4
    5
    6
    7
    ./spark-shell --master yarn
    ./spark-shell --master yarn-client
    #不支持这种模式
    #./spark-shell --master yarn-cluster
    ./spark-shell --master yarn --deploy-mode client
    #不支持这种模式
    #./spark-shell --master yarn --deploy-mode cluster
    

    备注:Yarn的连接信息在Hadoop客户端的配置文件中指定。通过spark-env.sh中的环境变量HADOOPCONFDIR指定Hadoop配置文件路径。

    • Spark on Mesos模式:
    ./spark-shell --master mesos://host:port
    ./spark-shell --master mesos://host:port --deploy-mode client
    ./spark-shell --master mesos://host:port --deploy-mode cluster

    启动方式: pyspark(Python)

    参数及用法与Scala语言的spark-shell相同,比如:

    pyspark --master local[2]

    展开全文
  • spark四种运行模式

    2019-08-28 21:11:19
    spark的核心组件 1.1Driver Spark 驱动器节点,用于执行 Spark 任务中的 main 方法,负责实际代码的执行 工作。Driver 在 Spark 作业执行时主要负责: ...1.1.4)通过 UI 展示查询运行情况; 1.2Executor ...
    1. spark的核心组件
      1.1Driver
      Spark 驱动器节点,用于执行 Spark 任务中的 main 方法,负责实际代码的执行
      工作。Driver 在 Spark 作业执行时主要负责:
      1.1.1) 将用户查询转化为任务;
      1.1.2)在 Executor 之间调度任务;
      1.1.3)跟踪 Executor 的执行情况;
      1.1.4)通过 UI 展示查询运行情况;
      1.2Executor
      Spark Executor 节点是一个 JVM 进程,负责在 Spark 作业中运行具体任务,任
      务彼此之间相互独立。Spark 应用启动时,Executor 节点被同时启动,并且始终伴
      随着整个 Spark 应用的生命周期而存在。如果有 Executor 节点发生了故障或崩溃,
      Spark 应用也可以继续执行,会将出错节点上的任务调度到其他 Executor 节点上继
      续运行。Executor 有两个核心功能:
      1.2.1 负责运行组成 Spark 应用的任务,并将结果返回给驱动器进程;
      1.2.2 它们通过自身的块管理器(Block Manager)为用户程序中要求缓存的 RDD
      提供内存式存储。RDD 是直接缓存在 Executor 进程内的,因此任务可以在运行时
      充分利用缓存数据加速运算。
      2. spark通用的运行模式

    在这里插入图片描述
    Spark 通用运行流程,不论 Spark 以何种模式进行部署,任务提交后,都会先启动 Driver 进程,随后 Driver 进程向集群管理器注册应用程序,之后集群管理器根据此任务的配置文件分配 Executor 并启动,当 Driver 所需的资源全部满足后,Driver 开始执行 main 函数,Spark 查询为懒执行,当执行到 action 算子时开始反向推算,根据宽依赖进行 stage 的划分,随后每一个 stage 对应一个 taskset,taskset 中有多个 task,根据本地化原则,task 会被分发到指定的 Executor 去执行,在任务执行的过程中,Executor 也会不断与 Driver 进行通信,报告任务运行情况。

    3. 四种运行模式
    spark支持四种运行模式其中一种是local模式另外三种是Standalone,Mesos,yarn集群模式。
    其中 local模式适合本地测试用; Standalone spark自带的集群模式。需要构建一个由Master+Slave构成的Spark集群,Spark运行在集群中。; Spark客户端直接连接Mesos,不需要额外构建Spark集群,国内用的少。;Spark客户端直接连接Yarn,不需要额外构建Spark集群。国内生产上用的多。而集群模式又根据Driver运行在哪又分为客Client模式和Cluster模式。用户在提交任务给 Spark 处理时,以下两个参数共同决定了 Spark 的运行方式。
    · –master MASTER_URL :决定了 Spark 任务提交给哪种集群处理。
    · –deploy-mode DEPLOY_MODE:决定了 Driver 的运行方式,可选值为 Client或者 Cluster。
    3.1 Spark运行模式配置

    Master URL Meaning
    local 在本地运行,只有一个工作进程,无并行计算能力。
    local[K] 在本地运行,有 K 个工作进程,通常设置 K 为机器的CPU 核心数量。
    local[*] 在本地运行,工作进程数量等于机器的 CPU 核心数量。
    spark://HOST:PORT 以 Standalone 模式运行,这是 Spark 自身提供的集群运行模式,默认端口号: 7077。
    mesos-client ./spark-shell --master mesos://host:port --deploy-mode client
    mesos-cluster ./spark-shell --master mesos://host:port --deploy-mode cluster
    yarn-client 在 Yarn 集群上运行,Driver 进程在本地,Work 进程在 Yarn 集群上。./spark-shell --master yarn --deploy-mode client。Yarn 集群地址必须在HADOOP_CONF_DIRorYARN_CONF_DIR 变量里定义
    yarn-cluster 在 Yarn 集群上运行,Driver 和Work 进程都在 Yarn 集群上。./spark-shell --master yarn --deploy-mode cluster。Yarn 集群地址必须在HADOOP_CONF_DIRorYARN_CONF_DIR 变量里定义

    3.2 Standalone模式运行机制

    Standalone 集群有四个重要组成部分,分别是:

    1. Driver:是一个进程,我们编写的 Spark 应用程序就运行在 Driver 上,由Driver 进程执行;
    2. Master:是一个进程,主要负责资源的调度和分配,并进行集群的监控等职责;
    3. Worker:是一个进程,一个 Worker 运行在集群中的一台服务器上,主要负责两个职责,一个是用自己的内存存储 RDD 的某个或某些 partition;另一个是启动其他进程和线程(Executor),对 RDD 上的 partition 进行并行的处理和计算。
    4. Executor:是一个进程,一个 Worker 上可以运行多个 Executor,Executor通过启动多个线程(task)来执行对 RDD 的 partition 进行并行计算,也就是执行我们对 RDD 定义的例如 map、flatMap、reduce 等算子操作。
      Standalone的client模式
      在这里插入图片描述
      解析:
      在 Standalone Client 模式下,Driver 在任务提交的本地机器上运行,Driver 启动后向 Master 注册应用程序,Master 根据 submit 脚本的资源需求找到内部资源至少可以启动一个 Executor 的所有 Worker,然后在这些 Worker 之间分配 Executor,Worker上的 Executor 启动后会向 Driver 反向注册,所有的 Executor 注册完成后,Driver 开始执行 main 函数,之后执行到 Action 算子时,开始划分 stage,每个 stage 生成对应的 taskSet,之后将 task 分发到各个 Executor 上执行。
      Standalone的cluster模式。
      在这里插入图片描述
      解析
      在 Standalone Cluster 模式下,任务提交后,Master 会找到一个 Worker 启动 Driver进程, Driver 启动后向 Master 注册应用程序,Master 根据 submit 脚本的资源需求找到内部资源至少可以启动一个 Executor 的所有 Worker,然后在这些 Worker 之间分配 Executor,Worker 上的 Executor 启动后会向 Driver 反向注册,所有的 Executor注册完成后,Driver 开始执行 main 函数,之后执行到 Action 算子时,开始划分 stage,每个 stage 生成对应的 taskSet,之后将 task 分发到各个 Executor 上执行。注意,Standalone 的两种模式下(client/Cluster),Master 在接到 Driver 注册
      Spark 应用程序的请求后,会获取其所管理的剩余资源能够启动一个 Executor 的所有 Worker,然后在这些 Worker 之间分发 Executor,此时的分发只考虑 Worker 上的资源是否足够使用,直到当前应用程序所需的所有 Executor 都分配完毕,Executor反向注册完毕后,Driver 开始执行 main 程序。
      3.3Yarn运行模式
      Yarn 的clinet运行模式
      在这里插入图片描述
      解析:
      在 YARN Client 模式下,Driver 在任务提交的本地机器上运行,Driver 启动后会ResourceManager 通讯申请启动 ApplicationMaster,随后 ResourceManager分 配 container , 在 合 适 的NodeManager 上 启 动 ApplicationMaster , 此 时 的ApplicationMaster 的功能相当于一个 ExecutorLaucher,只负责向 ResourceManager申请 Executor 内存。ResourceManager 接到 ApplicationMaster 的资源申请后会分配 container,然后ApplicationMaster 在资源分配指定的 NodeManager 上启动 Executor 进程,Executor进程启动后会向 Driver 反向注册,Executor 全部注册完成后 Driver 开始执行 main函数,之后执行到 Action 算子时,触发一个 job,并根据宽依赖开始划分 stage,每个 stage 生成对应的 taskSet,之后将 task 分发到各个 Executor 上执行。
      Yarn cluster运行模式
      在这里插入图片描述
      解析:
      在 YARN Cluster 模式下,任务提交后会和 ResourceManager 通讯申请启动ApplicationMaster,随后 ResourceManager 分配 container,在合适的 NodeManager上启动 ApplicationMaster,此时的 ApplicationMaster 就是 Driver。Driver 启动后向 ResourceManager 申请 Executor 内存,ResourceManager 接到ApplicationMaster 的资源申请后会分配 container,然后在合适的 NodeManager 上启动 Executor 进程,Executor 进程启动后会向 Driver 反向注册,Executor 全部注册完成后 Driver 开始执行 main 函数,之后执行到 Action 算子时,触发一个 job,并根据宽依赖开始划分 stage,每个 stage 生成对应的 taskSet,之后将 task 分发到各个Executor 上执行。
    展开全文
  • Spark几种运行模式

    千次阅读 2018-06-04 10:09:22
    spark应用执行机制分析前段时间一直在编写指标代码,一直采用的是--deploy-mode client方式开发测试,因此执行没遇到什么问题,但是放...1.spark应用的基本概念spark运行模式分为:Local(本地idea上运行),Standalon...

    spark应用执行机制分析

    前段时间一直在编写指标代码,一直采用的是--deploy-mode client方式开发测试,因此执行没遇到什么问题,但是放到生产上采用--master yarn-cluster方式运行,那问题就开始陆续暴露出来了。因此写一篇文章分析并记录一下spark的几种运行方式。

    1.spark应用的基本概念

    spark运行模式分为:Local(本地idea上运行),Standalone,yarn,mesos等,这里主要是讨论一下在yarn上的运行方式,因为这也是最常见的生产方式。

    根据spark Application的Driver Program是否在集群中运行,spark应用的运行方式又可以分为Cluster模式Client模式

    spark应用涉及的一些基本概念:

    1.mater:主要是控制、管理和监督整个spark集群

    2.client:客户端,将用应用程序提交,记录着要业务运行逻辑和master通讯。

    3.sparkContext:spark应用程序的入口,负责调度各个运算资源,协调各个work node上的Executor。主要是一些记录信息,记录谁运行的,运行的情况如何等。这也是为什么编程的时候必须要创建一个sparkContext的原因了。

    4.Driver Program:每个应用的主要管理者,每个应用的老大,有人可能问不是有master么怎么还来一个?因为master是集群的老大,每个应用都归老大管,那老大疯了。因此driver负责具体事务运行并跟踪,运行Application的main()函数并创建sparkContext。

    5.RDD:spark的核心数据结构,可以通过一系列算子进行操作,当Rdd遇到Action算子时,将之前的所有的算子形成一个有向无环图(DAG)。再在spark中转化成为job,提交到集群执行。一个app可以包含多个job

    6.worker Node:集群的工作节点,可以运行Application代码的节点,接收mater的命令并且领取运行任务,同时汇报执行的进度和结果给master,节点上运行一个或者多个Executor进程。

    7.exector:为application运行在workerNode上的一个进程,该进程负责运行Task,并且负责将数据存在内存或者磁盘上。每个application都会申请各自的Executor来处理任务。

    spark应用(Application)执行过程中各个组件的概念:

    1.Task(任务):RDD中的一个分区对应一个task,task是单个分区上最小的处理流程单元。

    2.TaskSet(任务集):一组关联的,但相互之间没有Shuffle依赖关系的Task集合。

    3.Stage(调度阶段):一个taskSet对应的调度阶段,每个job会根据RDD的宽依赖关系被切分很多Stage,每个stage都包含 一个TaskSet。

    4.job(作业):由Action算子触发生成的由一个或者多个stage组成的计算作业。

    5.application:用户编写的spark应用程序,由一个或者多个job组成,提交到spark之后,spark为application分派资源,将程序转换并执行。

    6.DAGScheduler:根据job构建基于stage的DAG,并提交stage给TaskScheduler。

    7.TaskScheduler:将Taskset提交给Worker Node集群运行并返回结果。

    spark基本概念之间的关系

    一个Application可以由一个或者多个job组成,一个job可以由一个或者多个stage组成,其中stage是根据宽窄依赖进行划分的,一个stage由一个taskset组成,一个TaskSET可以由一个到多个task组成。

    应用提交与执行

    spark使用driver进程负责应用的解析,切分Stage并且调度task到Executor执行,包含DAGscheduler等重要对象。Driver进程的运行地点有如下两种:

    1.driver进程运行在client端,对应用进行管理监控。

    2.Master节点指定某个Worker节点启动Driver进程,负责监控整个应用的执行。

    driver运行在client

    用户启动Client端,在client端启动Driver进程。在Driver中启动或实例化DAGScheduler等组件。

    1.driver在client启动,做好准备工作,计划好任务的策略和方式(DAGScheduler)后向Master注册并申请运行Executor资源。

    2.Worker向Master注册,Master通过指令让worker启动Executor。

    3.worker收到指令后创建ExecutorRunner线程,进而ExecutorRunner线程启动executorBackend进程。

    4.ExecutorBackend启动后,向client端driver进程内的SchedulerBackend注册,这样dirver进程就可以发现计算资源了。

    5.Driver的DAGScheduler解析应用中的RDD DAG并生成相应的Stage,每个Stage包含的TaskSet通过TaskScheduler分配给Executor,在Exectutor内部启动线程池并行化执行Task,同事driver会密切注视,如果发现哪个execuctor执行效率低,会分配其他exeuctor顶替执行,观察谁的效率更高(推测执行)。

    6.计划中的所有stage被执行完了之后,各个worker汇报给driver,同事释放资源,driver确定都做完了,就向master汇报。同时driver在client上,应用的执行进度clinet也知道了。

    Driver运行在Worker节点

    用户启动客户端,客户端提交应用程序给Master

    1.Master调度应用,指定一个worker节点启动driver,即Scheduler-Backend。

    2.worker接收到Master命令后创建driverRunner线程,在DriverRunner线程内创建SchedulerBackend进程,Dirver充当整个作业的主控进程。

    3.Master指定其他Worker节点启动Exeuctor,此处流程和上面相似,worker创建ExecutorRunner线程,启动ExecutorBackend进程。

    4.ExecutorBackend启动后,向client端driver进程内的SchedulerBackend注册,这样dirver进程就可以发现计算资源了。

    5.Driver的DAGScheduler解析应用中的RDD DAG并生成相应的Stage,每个Stage包含的TaskSet通过TaskScheduler分配给Executor,在Exectutor内部启动线程池并行化执行Task,同事driver会密切注视,如果发现哪个execuctor执行效率低,会分配其他exeuctor顶替执行,观察谁的效率更高(推测执行)。

    6.计划中的所有stage被执行完了之后,各个worker汇报给driver,同事释放资源,driver确定都做完了,就向master汇报。客户也会跳过master直接和drive通讯了解任务的执行进度



    原文链接:https://blog.csdn.net/baidu_38377068/article/details/78737645

    展开全文
  • 目录Local 模式使用 Spark-shell提交流程wordcount 数据流程分析:Standalone 模式配置 ...Mater 配置)Standalone 工作模式图解Yarn 模式Yarn 模式概述Yarn 模式配置Mesos 模式几种运行模式的对比 Local 模式 Loca

    Local 模式

    Local 模式就是指的只在一台计算机上来运行 Spark.
    通常用于测试的目的来使用 Local 模式, 实际的生产环境中不会使用 Local 模式.
    解压 Spark 安装包

    tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /export/servers
    

    然后复制刚刚解压得到的目录, 并命名为spark-local

    cp -r spark-2.1.1-bin-hadoop2.7 spark-local
    

    运行官方求PI的案例

    bin/spark-submit \
    --class org.apache.spark.examples.SparkPi \
    --master local[2] \
    ./examples/jars/spark-examples_2.11-2.1.1.jar 100
    

    备注: 也可以使用run-examples来运行

    bin/run-example SparkPi 100
    

    使用 Spark-shell

    Spark-shell 是 Spark 给我们提供的交互式命令窗口(类似于 Scala 的 REPL)
    本案例在 Spark-shell 中使用 Spark 来统计文件中各个单词的数量.
    创建 2 个文本文件

    mkdir input
    cd input
    touch 1.txt
    touch 2.txt
    

    分别在 1.txt 和 2.txt 内输入一些单词.
    打开 Spark-shell

    bin/spark-shell
    
    sc.textFile("input/").flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _).collect
    

    登录hadoop102:4040查看程序运行

    提交流程

    在这里插入图片描述

    wordcount 数据流程分析:

    在这里插入图片描述

    1. textFile(“input”):读取本地文件input文件夹数据;
    2. flatMap(_.split(" ")):压平操作,按照空格分割符将一行数据映射成一个个单词;
    3. map((_,1)):对每一个元素操作,将单词映射为元组;
    4. reduceByKey(+):按照key将值进行聚合,相加;
    5. collect:将数据收集到Driver端展示。

    Standalone 模式

    构建一个由 Master + Slave 构成的 Spark 集群,Spark 运行在集群中。
    这个要和 Hadoop 中的 Standalone 区别开来. 这里的 Standalone 是指只用 Spark 来搭建一个集群, 不需要借助其他的框架.是相对于 Yarn 和 Mesos 来说的.

    配置 Standalone 模式

    复制 spark, 并命名为spark-standalone

    cp -r spark-2.1.1-bin-hadoop2.7 spark-standalone
    

    进入配置文件目录conf, 配置spark-evn.sh

    cd conf/
    cp spark-env.sh.template spark-env.sh
    

    在spark-env.sh文件中配置如下内容:

    SPARK_MASTER_HOST=hadoop102
    SPARK_MASTER_PORT=7077 # 默认端口就是7077, 可以省略不配
    

    修改 slaves 文件, 添加 worker 节点

    cp slaves.template slaves
    

    在slaves文件中配置如下内容:

    hadoop102
    hadoop103
    hadoop104
    

    分发spark-standalone
    启动 Spark 集群

    sbin/start-all.sh
    

    可能碰到的问题
    • 如果启动的时候报:JAVA_HOME is not set, 则在sbin/spark-config.sh中添加入JAVA_HOME变量即可. 不要忘记分发修改的文件
    增加

    export JAVA_HOME=/export/servers/jdk
    

    在网页中查看 Spark 集群情况
    地址:http://hadoop102:8080

    使用 Standalone 模式运行计算 PI 的程序

    bin/spark-submit \
    --class org.apache.spark.examples.SparkPi \
    --master spark://hadoop102:7077 \
    --executor-memory 1G \
    --total-executor-cores 6 \
    --executor-cores 2 \
    ./examples/jars/spark-examples_2.11-2.1.1.jar 100
    

    在 Standalone 模式下启动 Spark-shell

    bin/spark-shell \
    --master spark://hadoop102:7077
    

    说明:
    • --master spark://hadoop102:7077指定要连接的集群的master
    执行wordcount程序

    sc.textFile("input/").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
    

    注意:
    • 每个worker节点上要有相同的文件夹:input/, 否则会报文件不存在的异常

    配置 Spark 任务历史服务器(为 Standalone 模式配置)

    在 Spark-shell 没有退出之前, 我们是可以看到正在执行的任务的日志情况:http://hadoop102:4040. 但是退出 Spark-shell 之后, 执行的所有任务记录全部丢失.
    所以需要配置任务的历史服务器, 方便在任何需要的时候去查看日志.
    配置spark-default.conf文件, 开启 Log

    cp spark-defaults.conf.template spark-defaults.conf
    

    在spark-defaults.conf文件中, 添加如下内容

    spark.eventLog.enabled           true
    spark.eventLog.dir               hdfs://hadoop102:9000/spark-job-log
    

    注意:
    hdfs://hadoop102:9000/spark-job-log 目录必须提前存在, 名字随意
    修改spark-env.sh文件,添加如下配置.

    export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=30 -Dspark.history.fs.logDirectory=hdfs://hadoop102:9000/spark-job-log"
    

    分发配置文件
    启动历史服务
    需要先启动 HDFS
    然后再启动:

    sbin/start-history-server.sh
    

    ui 地址: http://hadoop102:18080
    启动任务, 查看历史服务器

    bin/spark-submit \
    --class org.apache.spark.examples.SparkPi \
    --master spark://hadoop102:7077 \
    --executor-memory 1G \
    --total-executor-cores 6 \
    ./examples/jars/spark-examples_2.11-2.1.1.jar 100
    
    

    HA 配置(为 Mater 配置)

    由于 master 只有一个, 所以也有单点故障问题.
    在这里插入图片描述
    可以启动多个 master, 先启动的处于 Active 状态, 其他的都处于 Standby 状态
    给 spark-env.sh 添加如下配置

    # 注释掉如下内容:
    #SPARK_MASTER_HOST=hadoop102
    #SPARK_MASTER_PORT=7077
    # 添加上如下内容:
    export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop102:2181,hadoop103:2181,hadoop104:2181 -Dspark.deploy.zookeeper.dir=/spark"
    

    分发集群
    启动 Zookeeper
    在 hadoop102 启动全部节点

    sbin/start-all.sh
    

    会在当前节点启动一个 master
    在 hadoop103 启动一个 master

    sbin/start-master.sh
    

    查看 master 的状态
    杀死 hadoop102 的 master 进程
    Hadoop103 的 master 会自动切换成 Active

    Standalone 工作模式图解

    在这里插入图片描述

    Yarn 模式

    Yarn 模式概述

    Spark 客户端可以直接连接 Yarn,不需要额外构建Spark集群。
    有 client 和 cluster 两种模式,主要区别在于:Driver 程序的运行节点不同。
    • client:Driver程序运行在客户端,适用于交互、调试,希望立即看到app的输出
    • cluster:Driver程序运行在由 RM(ResourceManager)启动的 AM(AplicationMaster)上, 适用于生产环境。
    工作模式介绍:
    在这里插入图片描述

    Yarn 模式配置

    修改 hadoop 配置文件 yarn-site.xml, 添加如下内容:

    <!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
    
    

    修改后分发配置文件.
    复制 spark, 并命名为spark-yarn

    cp -r spark-standalone spark-yarn
    

    修改spark-evn.sh文件
    去掉 master 的 HA 配置, 日志服务的配置保留着.
    并添加如下配置: 告诉 spark 客户端 yarn 相关配置

    YARN_CONF_DIR=/export/servers/hadoop-2.7.7/etc/hadoop
    

    执行一段程序

    bin/spark-submit \
    --class org.apache.spark.examples.SparkPi \
    --master yarn \
    --deploy-mode client \
    ./examples/jars/spark-examples_2.11-2.1.1.jar 100
    

    http://hadoop202:8088
    日志服务
    在前面的页面中点击 history 无法直接连接到 spark 的日志.
    可以在spark-default.conf中添加如下配置达到上述目的

    spark.yarn.historyServer.address=hadoop102:18080
    spark.history.ui.port=18080
    

    可能碰到的问题:
    如果在 yarn 日志端无法查看到具体的日志, 则在yarn-site.xml中添加如下配置
    在这里插入图片描述

    <property>
        <name>yarn.log.server.url</name>
        <value>http://hadoop102:19888/jobhistory/logs</value>
    </property>
    

    Mesos 模式

    Spark客户端直接连接 Mesos;不需要额外构建 Spark 集群。
    国内应用比较少,更多的是运用yarn调度。

    几种运行模式的对比

    在这里插入图片描述

    展开全文
  • Spark三种运行模式详解和实例

    万次阅读 2019-12-16 18:14:17
    分别用local/standalone/yarn模式运行workcount。 截取spark-UI执行进度。 2)截取执行成功后输出的结果。 3)Spark on yarn模式,截取8088端口页面的截图。 Local模式: standalone模式: yarn模式 2.请...
  • Spark运行的4种模式

    千次阅读 2018-12-05 16:57:33
    1. 4种运行模式概述图 2. 不同的提交参数说明 ./bin/spark-submit \ //主类入口 --class &lt;main-class&gt; \ // 指定appname --name &lt;appname&gt; \ //pom依赖所需要的...
  • Spark常用三种运行模式

    万次阅读 2018-05-23 22:37:11
    Spark运行模式有 Local(也称单节点模式),Standalone(集群模式),Spark on Yarn(运行在Yarn上),Mesos以及K8s等常用模式,本文介绍前三种模式。 Spark-shell 参数 Spark-shell 是以一种交互式命令行方式...
  • spark的三种模式的详细运行过程

    万次阅读 2016-11-11 14:31:28
    1、使用SparkSubmit提交任务的时候(包括Eclipse或者其它开发工具使用new SparkConf()来运行任务的时候),Driver运行在Client;使用SparkShell提交的任务的时候,Driver是运行在Master上 2、使用SparkSubmit提交任务...
  • 除了可以在Mesos或者YARN集群管理器上运行Spark外,Spark还提供了独立部署模式。你可以通过手动启动一个master和workers,或者使用提供的脚本来手动地启动单独的集群模式。你也可以在一台单独的机器上启动这些进程...
  • Spark客户端直接连接Mesos;不需要额外构建Spark集群。国内应用比较少,更多的是运用yarn调度。
  • Spark Core用于离线计算 Spark SQL用于交互式查询 Spark Streaming用于实时流式计算 Spark MLlib用于机器学习 Spark GraphX用于图计算 Spark VS MapReduce 这部分由于水平有限,只能转至其他大神的总结 ...
  • Spark运行模式

    2017-01-12 00:02:14
    我们先看一个完整的实例wordcountimport org.apache.spark._ import SparkContext._ object WordCount { def main(args: Array[String]) { if (args.length != 3 ){ println("usage is org.test.WordCou
  • spark运行模式全解析

    千次阅读 2018-05-21 17:29:36
    1.local 本地模式:不需要hadoop(除非用到),不需要启动Master,Worker spark-shell(spark-shell –master local[n]) spark-submit (spark-submit –master local[n]) 2.local cluster 模式:不需要hadoop...
  • Spark运行模式对比

    2018-06-04 10:12:26
    目前Apache Spark支持三种分布式部署方式,分别是standalone、spark on mesos和 spark on YARN,其中,第一种类似于...让Spark运行在一个通用的资源管理系统之上,这样可以与其他计算框架,比如MapReduce,公用一...
  • Spark运行模式详解

    2018-12-06 11:46:43
    Spark运行模式 Local模式 Local[n] 本地模式 启动n个线程 Local模式通常用于测试用,直接bin/spark-shell启动即可。 Standalone模式 Standalone是Spark自带的资源管理器,无需依赖任何其他资源管理系统 配置 ...
  • Spark安装地址 官网地址 http://spark.apache.org/ 文档查看地址 https://spark.apache.org/docs/2.1.1/ 下载地址 https://spark.apache.org/downloads.html 重要角色 Driver(驱动器) Spark的驱动器是执行开发...
  • Spark运行模式之Yarn模式

    千次阅读 2019-05-07 18:33:33
    Spark客户端直接连接Yarn,不需要额外构建Spark集群。有yarn-client和yarn-cluster两种模式, 主要区别在于:Driver程序的运行节点。 yarn-client:Driver程序运行在客户端,适用于交互、调试,希望立即看到app的...
  • Spark运行模式及原理(一)

    千次阅读 2016-03-19 19:47:11
    Spark运行模式多种多样,灵活多变,部署在单机上时,既可以用本地模式运行,也可以用伪分布式模式运行;而当以分布式集群的方式部署时,也有众多的运行模式可供选择,这取决于集群的实际情况,底层的资源调度既...
  • Spark 框架编写的应用程序可以运行在本地模式(Local Mode)、集群模式(Cluster Mode) 和云服务(Cloud),方便开发测试和生产部署。 概述 本地模式:Local Mode 将Spark 应用程序中任务Task运行在一个本地JVM ...
  • Spark运行模式配置

    2018-01-04 23:25:22
    Spark有几种运行模式,包括 local,standalone,YARN,MESOS等 1. local模式 --master local : run in local mode with a single core --master local[N] : run in local mode with N cores --master local[*] :...
  • spark运行模式总结

    2018-05-08 15:28:34
    spark运行模式分为单机local、standalone集群模式,和运行与yarn或mesos上的集群模式。其中运行与yarn上的集群模式又分为yarn client,yarn cluter两种模式。下面详细介绍这几种运行模式。1、 单机local模式。...
  • 1、Spark运行模式概述 1、spark的运行模式 local yarn-client yarn-cluster standalone-client standalone-cluster k8s/mesos(不讲) 2、local模式: 在Linux上的local: 将spark安装包解压 JAVA...
  • 目录 一、spark standalone模式 1. 配置 2. 服务启动与测试 二、spark on yarn模式 ...Spark支持3种集群模式,分别是standalone、spark on yarn(hadoop2)、以及spark on mesos模式。其中standalone模式是sp...
  • spark-submit --master spark://192.168.8.19:7077 --deploy-mode client /Users/haozhugogo/Downloads/hdfs_wordcount.py /Users/haozhugogo/Downloads/sparktest.txt //spark自带集群跑 本机是driver,可以看到...
  • 第三章 Spark运行模式及原理 目录 Spark运行模式概述 Local模式 Standalone模式 Local cluster模式 Mesos模式 YARN standalone/YARN cluster模式 YARN client模式 各种模式的实现细节比较 Spark1.0版本之后的变化 ...
  • Spark运行模式Spark on yarn 和Spark on Mesos性能方面有什么区别吗
  • Spark快速入门系列(2) | Spark 运行模式之Local本地模式

    千次阅读 多人点赞 2020-07-05 10:43:46
      大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主...  此篇为大家带来的是Spark 运行模式之Local本地模式。 .
  • Spark客户端直接连接Yarn,不需要额外构建Spark集群。有yarn-client和yarn-cluster两种模式,主要区别在于:Driver程序的运行节点。 yarn-client:Driver程序运行在客户端,适用于交互、调试,希望立即看到app的输出...
  • 构建一个由Master+Slave构成的Spark集群,Spark运行在集群中 安装使用 进入spark安装目录下的conf文件夹 [liujh@hadoop102 module]$ cd spark/conf/ 修改配置文件名称 [liujh@hadoop102 conf]$ mv slaves....
  • Spark运行模式之Local模式

    千次阅读 2019-05-07 18:13:15
    Local模式就是运行在一台计算机上的模式,通常就是用于在本机上练手和测试。它可以通过以下集中方式设置Master local: 所有计算都运行在一个线程当中,没有任何并行计算,通常我们在本机执行一些测试代码,或者练...

空空如也

1 2 3 4 5 ... 20
收藏数 47,253
精华内容 18,901
关键字:

spark运行模式