spark支持多种部署方案,包括spark自带的standalone资源调度模式(StandAlone);运行在hadoop的yarn资源调度框架中(SparkOnYARN);local本地模式;可以运行在Mesos资源调度框架上;还可以运行在k8s(Kubernetes)上。今天对前三个(standalone、sparkonyarn、local进行阐述)

local模式

1)运行在本地,利用本地资源进行计算
2)一般进行测试时会使用本地模式
3)使用方式
I:使用idea 代码中设置master为locak[*]

II:集群中提交任务时 不添加参数 --master 即为本地模式

StandAlone模式

StandAlone模式,又分为client模式和集群模式

1)client模式:特点:Driver是在SparkSubmit进程中

2)cluster模式:特点:Driver运行在集群当中,不在SparkSubmit进程当中,需要将jar包上传到hdfs中,此模式细节和sparkonyarn的集群模式差不多,在sparkonyarn中阐述。

Spark On YARN模式

1)经常使用,以后开发中经常用到的。2)也分为client模式和cluster模式。3)主要角色:

  1. ResourceManger(RM)全局的资源管理器,负责整个系统的资源管理和分配,由调度器(ResourceScheduler)和应用管理器(Applications Manger,ASM)组成。调度器:调度器根据容量,队列等限制条件,将系统中的资源分配给各个正在运行的应用程序.调度器不参与任何应用程序的具体工作,仅根据应用程序的资源需求进行资源分配.调度器是个可拔插的组件,用户可根据自己的需要设计新的调度器;应用程序管理器:负责整个系统中所有应用程序,包括应用程序的提交,与调度器协商资源以启动ApplicationMaster(AM),监控AM运行状态并在失败时重启它
  2. ApplicationMaster(AM) 用户提交的每一个应用程序均包含一个AM :I.与RM调度器协商以获取资源 II.将得到的资源进一步分配给内部的任务III.与NodeManager(NM)通信,以启动停止任务 IV.监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务
  3. NodeManager(NM) NM是每个节点上的资源和任务管理器.一方面,它会定时的向RM汇报本节点上的资源使用情况和各个Container的运行状态;另一方面,它接收并处理来自AM的Container启动停止等请求Container

4)经常用到的是spark on yarn 中的cluster集群模式 是为重点******运行流程:

流程解析:
(1)启动sparksubmit进程
(2)解析参数 比如 在集群中设置的--master 等
(3)解析后经过一系列反射、调用方法等创建rmClient(就是跟ResourceManager进行通信的代理对象)
(4)client向resourcemanager申请资源,rm返回给client一个application id
(5)client向hdfs上 上传spark jars下面的jar包、自己写的程序jar、和配置
(6)resourcemanager随机找一个资源充足的nodemanager
(7)然后通过rpc通信,让nodemanager从hdfs上下载jar包和配置,启动ApplicationMaster
(8)ApplicationMaster向resourcemanager申请资源
(9)resourcemanager中的resourceschedule找到符合条件的nodemanager,将nodemanager的信息返回给ApplicationMaster
(10)ApplicationMaster跟返回的NodeManger进行通信
(11)NodeManager从hdfs上下载依赖和jar包
(12)nodemanager启动executor
(13)executor启动之后向ApplicationMaster(Driver)反向注册
(14)Driver端的代码经过一系列transfomation,遇到action形成一个DAG,DAGschedule按照依赖关系 切分stage,生成task,最后调度到executor中的线程池进行执行。5)spark on yarn client模式

  • 客户端提交一个Application,在客户端启动一个Driver进程。
  • Driver进程会向ResourceManager发送请求,启动ApplicationMaster的资源。
  • ResourceManager收到请求,随机选择一台NodeManager,然后该NodeManager到HDFS下载jar包和配置,接着启动ApplicationMaster【ExecutorLuacher】。这里的NodeManager相当于Standalone中的Worker节点。
  • ApplicationMaster启动后,会向ResourceManager请求一批container资源,用于启动Executor.
  • ResourceManager会找到一批符合条件NodeManager返回给ApplicationMaster,用于启动Executor。
  • ApplicationMaster会向NodeManager发送请求,NodeManager到HDFS下载jar包和配置,然后启动Executor。
  • Executor启动后,会反向注册给Driver,Driver发送task到Executor,执行情况和结果返回给Driver端

spark on yarn 配置及提交任务

配置hadoop
需要在/etc/profile中配置HADOOP_CONF_DIR的目录,目的是为了让Spark找到core-site.xml、hdfs-site.xml和yarn-site.xml【让spark知道NameNode、ResourceManager】

关闭内存资源检测
修改yarn-site.xml

修改capacity-scheduler.xml
配置一个yarn的container可以使用多个vcores,因为capacity schedule使用的是DefaultResourceCalculator,那么DefaultResourceCalculator它在加载Container时其实仅仅只会考虑内存而不考虑vcores,默认vcore就是1。yarn 默认情况下,只根据内存调度资源,所以 spark on yarn 运行的时候,即使通过--executor-cores 指定 core 个数为 N,但是在 yarn 的资源管理页面上看到使用的 vcore 个数还是 1

将配置文件进行分发

打包wordcount程序并上传到linux01上

在集群上提交程序./spark-submit --master yarn --deploy-mode cluster --executor-memory 1g --executor-cores 2 --num-executors 3 --class cn._doit19.demo01.WordCount /root/wordcount.jar hdfs://linux01:8020/word/ hdfs://linux01:8020/out20210102--deploy-mode cluster 必须要指定,否则为client模式
最终输出结果:

更多学习、面试资料尽在微信公众号:Hadoop大数据开发

本地提交spark_spark快速入门(三)-------spark部署及运行模式相关推荐

  1. Spark快速入门指南 – Spark安装与基础使用

    本文转载自Spark快速入门指南 – Spark安装与基础使用 Apache Spark 是一个新兴的大数据处理通用引擎,提供了分布式的内存抽象.Spark 正如其名,最大的特点就是快(Lightni ...

  2. sql语言和php,SQL语言快速入门(三)_php

    我们日常使用SQL语言的工作过程中,使用最多的还是从已经建立好的数据库中查询信息.下面,我们就来详细介绍一下如何使用SQL语言实现各种数据库查询操作. SELECT-FROM 为方便讲解,我们在数据库 ...

  3. JavaScript学习记录01快速入门、基本语法、严格检查模式

    文章目录 JavaScript学习记录01快速入门.基本语法.严格检查模式 1.1什么是JavaScript 1.2认识JavaScript框架 1.3快速入门 1.4基本语法入门 1.5数据类型简介 ...

  4. spark四种运行模式

    spark的核心组件 1.1Driver Spark 驱动器节点,用于执行 Spark 任务中的 main 方法,负责实际代码的执行 工作.Driver 在 Spark 作业执行时主要负责: 1.1. ...

  5. 【Spark】standalone运行模式

    简介: standalone 模式,是 spark 自己实现的,它是一个资源调度框架.这里我们要关注这个框架的三个节点: 1)client 2)master 3)worker spark 应用程序有一 ...

  6. 快速入门 TensorFlow2 模型部署

    机器学习问题不仅是一个科学问题,更是一个工程问题. 大多数年轻的数据科学家都希望将大部分时间花在构建完美的机器学习模型上,但是企业不仅需要训练一个完美的模型,同时也需要将其部署,向用户提供便捷的服务. ...

  7. 本地提交spark_Spark 任务提交

    提交的应用程序 Spark的bin目录中的Spark -submit脚本用于在集群上启动应用程序.它可以通过一个统一的接口使用所有Spark支持的集群管理器,这样您就不必为每一个都配置您的应用程序. ...

  8. AS3多线程快速入门(三):NAPE物理引擎+Starling

    原文:http://blog.domlib.com/articles/345 [更新]Adobe在11.4正式发布的最后一刻移除了ByteArray.shareable功能的支持,推迟到11.5版本再 ...

  9. AS3多线程快速入门(三):NAPE物理引擎+Starling[译]

    原文链接:http://esdot.ca/site/2012/intro-to-as3-workers-part-3-nape-physics-starling [更新]Adobe在11.4正式发布的 ...

最新文章

  1. installshield 2009实现安装包自动编译
  2. Dell服务器Ubuntu 18.04 双显卡(2080ti)搭建深度学习环境(CUDA 10.1/cuDNN 7.6/Tensorflow 1.14).md...
  3. 特征抽取--标签与索引的转化: IndexToString
  4. 高性能jdbc封装工具 Apache Commons DbUtils 1.6(转载)
  5. 科大星云诗社动态20210518
  6. xxxx无法转换为java.lang.Class<? extends javax.validation.Payload>
  7. 好用的wordpress主题
  8. 总线接口与计算机通信(五)CAN总线
  9. java的内存管理机制
  10. findfirst_当心findFirst()和findAny()
  11. 计算机网络 --- 网络层IP数据报
  12. javamail腾讯企业邮箱发送邮件
  13. 推荐系统学习(三)SVD奇异值分解做推荐与python代码
  14. python多进程控制gui界面_Python优雅地终止了多进程和gui进程
  15. 将一个JDBC的ResultSet转成XML并输出到文件
  16. 软件质量-知识点整理
  17. [拓扑资料汇总-近期更新中]点集代数拓扑 与泛函共看效果更佳
  18. nas 微型计算机,商为家用的利器 希捷BS 2- Bay NAS
  19. layui框架实战案例(8):web图片裁切插件croppers.js组件实现上传图片的自定义截取(含php后端)
  20. 按F12,你真的会准确定位前后端问题吗?

热门文章

  1. python界面编程实例_python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例...
  2. python所有软件-一款Python黑客打造的勒索软件,让所有国产杀毒软件升起无力感!...
  3. python编程100个小程序-(编程)10个Python练手小程序
  4. 调研报告|在线语音识别改进之 RNN-T 训练
  5. 语音自动识别文字软件
  6. 清华大学出版社-图书详情-《深度学习:语音识别技术实践》
  7. cover 在html中的作用,Cover
  8. JavaScript-输入输出语法
  9. 荣耀平板7可以用鸿蒙么,荣耀平板7定档3月23日发布,一屏可同时开启4个应用
  10. Vue动态权限路由addRoutes执行初次白屏解决方法。