spark-submit

参数说明
–name应用程序的名称,方便在webui上查看程序状况,或查看日志时进行区别。
–mastermaster指定的地址,提交任务到哪里执行,例如 spark://host:port, yarn, local, mesos://host:port(国外常用) 等。
–deploy-modespark任务的部署方式:
–class应用程序的主类即入口类,仅针对 java 或 scala 应用
–packages包含在driver和executor的classpath中的jar的maven坐标。
–jars如果应用依赖于少量第三方的jar包,可以把它们放在这个参数里,用逗号分隔的本地jar包,设置后,这些jar包将包含在driver和executor的classpath下。
–exclude-packages为了避免冲突 而指定不包含的package,程序加载会排除该指定下的jar包。
–driver-coresdriver使用内核数,默认为1(在yarn或者standalone模式下使用)。driver是驱动整个应用的主驱动程序,也可以把它理解为是主进程。其主要作用:1、将用户程序转化为作业(job)2、在Executor之间调度任务(task)3、跟踪Executor的执行情况4、通过UI展示查询运行情况
–driver-memorydriver内存大小,占用客户端内存,用于通信及调度开销,默认512M。
–num-executorsspark executor 的数目
–executor-coresspark executor 的核数
–executor-memoryspark exectuor 的内存大小
指定主驱动包及主程序给定参数指定jar 包的位置及程序参数
不常用参数
–conf指定spark配置属性的值,用于spark调优,参数格式为KEY=VALUE。例如:–conf spark.default.parallelism=1000 设置RDD分区大小,系统默认为200。–conf spark.storage.memoryFraction=0.5 设置内存分配大小(存储),系统默认为0.6。–conf spark.shuffle.memoryFraction=0.3 设置shuffle上限内存空间,系统默认为0.2
–properties-file用逗号隔开的文件列表,会放置在每个executor工作目录中,通过SparkFiles.get(fileName)调用。可以用来上传配置文件,默认路径为conf/spark-defaults.conf。如果使用–properties-file,在–properties-file中定义的属性就不必要在spark-sumbit中再定义了,比如在conf/spark-defaults.conf中定义了spark.master,就可以不使用–master了。如果不指定,默认使用conf/spark-defaults.conf文件中的配置。(关于Spark属性的优先权为:SparkConf方式 > 命令行参数方式 > 文件配置方式)
–repositories远程repository储存库。例如:【–repositories https://oss.sonatype.org/content/groups/public/ 】
–driver-java-options传给driver的额外的java选项。
–driver-library-path传给driver的额外的库路径。
–driver-class-path传给driver的额外的类路径。
–total-executor-cores设置任务占用的总CPU核数(即任务的并发量),由主节点指定各个工作节点CPU的使用数(仅仅在mesos或者standalone模式下使用)。

deploy-mode:
local模式(本地模式),一般调试的时候使用。
1、【local】: 所有计算都运行在一个线程当中,没有任何并行计算,通常我们在本机执行一些测试代码,或者练手,就用这种模式。
2、【local[n]】:指定使用几个线程来运行计算,比如local[n]就是运行n个worker线程。通常我们的cpu有几个core,就指定几个线程,这样可以最大化利用cpu的计算能力。
3、【local[*]】: 该模式按照本机cpu最多cores来设置线程数,一般大家都不会可以去记自己本机的cup核数,所以这是高效省事的写法。
cluster模式(集群模式),一般代码线上部署时使用,当然测试时也会涉及。
1、【spark://host:port(,slave1:port,slave2:port…)】:独立部署模式,将程序提交给指定的Spark独立集群,只使用Spark自身节点运行的集群模式。Spark会自己负责资源的管理调度,它将cluster中的机器分为master机器和worker机器。生产环境一般不会把spark部署为standalone模式,除非是学习调试阶段,才会将spark部署为该模式。
2、【yarn】:将程序提交到yarn集群,由yarn集群调度资源,指定master机器和worker机器。正式生产环境都是这种部署模式,很多时候我们需要和mapreduce使用同一个集群。
其中yarn模式又分为yarn-cluster模式和yarn-client模式:
【yarn-cluster】: 这个就是生产环境常用的模式,所有的资源调度和计算都在集群环境上运行。
【yarn-client】: 这个是说Spark Driver和ApplicationMaster进程均在本机运行,而计算任务在cluster上。
yarn-cluster和yarn-client的区别在于yarn appMaster,每个yarn app实例有一个appMaster进程,是为app启动的第一个container;负责从ResourceManager请求资源,获取到资源后,告诉NodeManager为其启动container。yarn-cluster和yarn-client模式内部实现还是有很大的区别。如果你需要用于生产环境,那么请选择yarn-cluster;而如果你仅仅是Debug程序,可以选择yarn-client。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值