首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spark Operator 是如何提交 Spark 作业

Overview 本文将 Spark 作业称为 Spark Application 或者简称为 Spark App 或者 App。...目前我们组的计算平台的 Spark 作业,是通过 Spark Operator 提交给 Kubernetes 集群的,这与 Spark 原生的直接通过 spark-submit 提交 Spark App...Spark Operator 的提交作业的逻辑主要在 pkg/controller/sparkapplication/submission.go。...Summary 本文主要介绍了 Spark Operator 中提交 Spark 作业的代码逻辑,也介绍了在 Spark Operator 中检查提交作业逻辑的问题,由于 Operator 依赖于 Spark...镜像,默认情况下,Tenc 上的 Spark Operator 使用的是计算资源组定制过的 Spark 镜像,因此,如果用户对作业提交有其他定制化的需求,就需要重新 build Spark Operator

1.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Spark部署模式与作业提交

    一、作业提交 1.1 spark-submit Spark 所有模式均使用 spark-submit 命令提交作业,其格式如下: ....; 在 client 模式下,Spark Drvier 在提交作业的客户端进程中运行,Master 进程仅用于从 YARN 请求资源。...二、Local模式 Local 模式下提交作业最为简单,不需要进行任何配置,提交命令如下: # 本地模式提交应用 spark-submit \ --class org.apache.spark.examples.SparkPi.../sbin/start-master.sh 访问 8080 端口,查看 Spark 的 Web-UI 界面,,此时应该显示有两个有效的工作节点: 3.4 提交作业 # 以client模式提交到standalone.../jars/spark-examples_2.11-2.4.0.jar \ 100 3.5 可选配置 在虚拟机上提交作业时经常出现一个的问题是作业无法申请到足够的资源: Initial job has

    77430

    提交Spark作业 | 科学设定spark-submit参数

    num-executors 含义:设定Spark作业要用多少个Executor进程来执行。 设定方法:根据我们的实践,设定在30~100个之间为最佳。如果不设定,默认只会启动非常少的Executor。...设得太大的话,又会抢占集群或队列的资源,导致其他作业无法顺利执行。 executor-cores 含义:设定每个Executor能够利用的CPU核心数(这里核心指的是vCore)。...需要注意的是,num-executors * executor-cores不能将队列中的CPU资源耗尽,最好不要超过总vCore数的1/3,以给其他作业留下剩余资源。...这个参数比executor-cores更为重要,因为Spark作业的本质就是内存计算,内存的大小直接影响性能,并且与磁盘溢写、OOM等都相关。...但是,如果Spark作业处理完后数据膨胀比较多,那么还是应该酌情加大这个值。与上面一项相同,spark.driver.memoryOverhead用来设定Driver可使用的堆外内存大小。

    1.7K20

    Spark源码系列(一)spark-submit提交作业过程

    前言 折腾了很久,终于开始学习Spark的源码了,第一篇我打算讲一下Spark作业提交过程。 这个是Spark的App运行图,它通过一个Driver来和集群通信,集群负责作业的分配。...作业提交方法以及参数 我们先看一下用Spark Submit提交的方法吧,下面是从官方上面摘抄的内容。 # Run on a Spark standalone cluster ....前面不带--的可以在spark-defaults.conf里面设置,带--的直接在提交的时候指定,具体含义大家一看就懂。...client的话默认就是直接在本地运行了Driver程序了,cluster模式还会兜一圈把作业发到集群上面去运行。...我们回到Client类当中,找到ClientActor,它有两个方法,是之前说的preStart和receive方法,preStart方法用于连接master提交作业请求,receive方法用于接收从master

    2K60

    Spark内核分析之spark作业的三种提交方式

    最近在研究Spark源码,顺便记录一下,供大家学习参考,如有错误,请批评指正。好,废话不多说,这一篇先来讲讲Spark作业提交流程的整体架构。...Yarn-cluster模式 1.Spark提交作业到Yarn集群,向ResourceManager请求启动ApplicationMaster; 2.ResourceManager分配一个Container...Yarn-client模式 关于Yarn-client与Yarn-cluster两种模式的区别与使用场景; 区别:这两种spark作业提交方式的区别在于Driver所处的位置不同。...总结:以上简单介绍了三种Spark作业提交方式;上述的三种模式中的每个组件的内部工作原理会在后续的文章一一解答,包括Master资源分配算法,DAGScheduler的stage划分算法,TaskScheduler...如需转载,请注明: Spark内核分析之spark作业的三种提交方式

    74420

    Spark作业调度

    Spark在standalone模式下,默认是使用FIFO的模式,我们可以使用spark.cores.max 来设置它的最大核心数,使用spark.executor.memory 来设置它的内存。...下面介绍一下怎么设置Spark的调度为Fair模式。   在实例化SparkContext之前,设置spark.scheduler.mode。...System.setProperty("spark.scheduler.mode", "FAIR")   公平算法支持把作业提交到调度池里面,然后给每个调度池设置优先级来运行,下面是怎么在程序里面指定调度池...context.setLocalProperty("spark.scheduler.pool", null)   默认每个调度池在集群里面是平等共享集群资源的,但是在调度池里面,作业的执行是FIFO的,...如果给每个用户设置一个调度池,这样就不会出现迟提交的比先提交的先运行。

    95770

    oozie 重新提交作业

    在oozie的运行过程当中可能会出现错误,比如数据库连接不上,或者作业执行报错导致流程进入suspend或者killed状态,这个时候我们就要分析了,如果确实是数据或者是网络有问题,我们比如把问题解决了才可以重新运行作业...重新运行作业分两种情况,suspend状态和killed状态的,这两种状态是要通过不同的处理方式来处理的。   ...(1)suspend状态的我们可以用resume方式来在挂起的地方恢复作业,重新运行,或者是先杀掉它,让它进入killed状态,再进行重新运行。...,除了需要原有流程的id之外,还需要重新配置作业属性,它可以和原来的属性不一样,这里面有两个属性是必须要注意的,它们是重新提交作业必须具备的属性,如果不存在就会报错的,它们分别是oozie.wf.rerun.failnodes...好啦,就到这吧,oozie貌似就这么多东西了,目前貌似一直都没有看到它的事务机制,它的定时作业不太想研究,看着就费劲儿,还不如自己写一个定时作业呢。。。

    1.2K90

    如何使用CDSW在CDH集群通过sparklyr提交R的Spark作业

    1.文档编写目的 ---- 继上一章介绍如何使用R连接Hive与Impala后,Fayson接下来讲讲如何在CDH集群中提交R的Spark作业Spark自带了R语言的支持,在此就不做介绍,本文章主要讲述如何使用...Rstudio提供的sparklyr包,向CDH集群的Yarn提交R的Spark作业。...内容概述 1.命令行提交作业 2.CDSW中提交作业 3.总结 测试环境 1.操作系统:RedHat7.2 2.采用sudo权限的ec2-user用户操作 3.CDSW版本1.1.1 4.R版本3.4.2...前置条件 1.Spark部署为On Yarn模式 2.CDH集群正常 3.CDSW服务正常 2.命令行提交作业 ---- 1.在R的环境安装sparklyr依赖包 [ec2-user@ip-172-31...[9aa7pe8ej1.jpeg] 作业运行成功 [5gez6gzlbh.jpeg] 执行结果: [fbpfm02ds7.jpeg] 3.CDSW提交作业 ---- 1.安装依赖包 install.packages

    1.7K60

    如何使用Oozie API接口向Kerberos环境的CDH集群提交Spark作业

    Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在CDH集群外的节点向集群提交Spark...作业的方式有多种,前面Fayson介绍了Livy相关的文章主要描述如何在集群外节点通过RESTful API接口向CDH集群提交Spark作业以及《如何使用Oozie API接口向非Kerberos环境的...CDH集群提交Spark作业》,本篇文章主要介绍使用Oozie的API接口向Kerberos集群提交Spark作业。...API接口向非Kerberos环境的CDH集群提交作业》 《如何在Kerberos环境的CDH集群部署Livy》 《如何通过Livy的RESTful API接口向Kerberos环境的CDH集群提交作业...在指定HDFS上运行的jar或workflow的路径时需要带上HDFS的路径,否则默认会找到本地的目录 向Kerberos集群提交作业需要在程序中加载JAAS配置 Oozie-client提供了Kerberos

    2K70

    0812-5.16.2-如何获取CDSW上提交Spark作业的真实用户

    异常描述 在一个CDSW环境中,由于其中一个租户经常提交大型Spark作业将YARN上租户所在的资源池资源用到95%以上,从而影响到同一租户下其他用户提交作业的运行。...),所以导致在YARN的界面上看到的都是同一个租户,而无法对应到实际CDSW的用户以及这个人提交的大型作业。...本文主要描述通过修改Spark的配置来将作业的实际提交人的用户名展示到Spark UI,非CDSW的YARN的多租户管理也会碰到类似问题。...3.在SparkUI上找到该作业,并点击“Environment”,可以看到参数列表中打印了提交Spark作业的用户 ?...中提交Spark作业里该参数不会生效,需要重启启动Session才能让参数生效。

    83640

    如何使用Oozie API接口向非Kerberos环境的CDH集群提交Spark作业

    Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 在CDH集群外的节点向集群提交Spark...作业的方式有多种,前面Fayson介绍了Livy相关的文章主要描述如何在集群外节点通过RESTful API接口向CDH集群提交Spark作业,本篇文章我们借助于oozie-client的API接口向非...Kerberos集群提交Spark作业。...API接口向非Kerberos环境的CDH集群提交作业》 《如何在Kerberos环境的CDH集群部署Livy》 《如何通过Livy的RESTful API接口向Kerberos环境的CDH集群提交作业...6.总结 ---- 通过Oozie API提交作业,需要先定义好workflow.xml文件 参数传递通过在代码里面调用oozieClient.createConfiguration()创建一个Properties

    1.4K70
    领券