Spark on yarn 提交应用的方式
通过spark-submit –help可以看到spark-submit的三种用法。
Usage: spark-submit [options] <app jar | python file> [app arguments]
2、根据job的id杀死某个job,仅支持在standalone和Mesos模式下使用
Usage: spark-submit --kill [submission ID] --master [spark://...]
3、查看某个job的状态,仅支持在standalone和Mesos模式下使用
Usage: spark-submit --status [submission ID] --master [spark://...]
在spark on yarn模式下,仅使用第一种。提交job的常用选项及说明:
--master MASTER_URL #指定spark应用的运行模式可选项包括spark://host:port, mesos://host:port, yarn, local.若以spark on yarn模式运行应用则需选择yarn
--deploy-mode DEPLOY_MODE #设定部署应用的方式可选项有:client和cluster
在client模式下,driver进程会运行在本地,可以在程序运行中进行交互,一般在实验环境中使用,也是默认的部署形式,spark-shell就是以这个模式运行的。
在cluster模式下,主节点会随机选取一个slave节点启动driver进程,不占用master节点资源,适合在生产环境使用。
--class CLASS_NAME #指定jar包的main函数所在类(不写后缀,适用于java和scala编写的应用)。比如:com.foo.Main
--name NAME #可以为你的应用在运行时指定一个个性化的名字,这样在ui中就能很容易的找到你的程序啦,比如 –name myAppilication
--jars JARS #指定程序运行需要的额外的依赖jar包,比如:--jars /home/Hadoop/myjar.jar
--packages #以maven坐标的形式引入jar依赖,坐标之间以逗号分隔。会自动搜索本地maven仓库、maven中央仓库或者以 --repositories指定的其它远程仓库。坐标的格式为:groupId:artifactId:version.
--exclude-packages #以逗号分隔的groupId:artifactId,用来排除一些依赖,在解决依赖冲突时比较有用,一般作为--packages 的修正使用。
--repositories #以逗号分隔的远程maven仓库列表,和--packages.配合使用。
--conf PROP=VALUE #指定Spark的配置属性。
常用的属性及配置如下:
--conf spark.storage.memoryFraction=0.1 #设置内存用来作为cache的比例,0.1 为10% (默认为0.6),如果不用内存cache,设置为0
--conf spark.hadoop.fs.hdfs.impl.disable.cache=true #禁止使用内存cache
--conf spark.default.parallelism=400 #控制Spark中的分布式shuffle过程默认使用的task数量,默认Others: total number of cores on all executor nodes or 2, whichever is larger,我们建议为每一个CPU核(core)分配2-3个任务
--conf spark.hadoop.mapreduce.input.fileinputformat.split.minsize=134217728 #调整split文件大小
--conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" #打印gc信息,在应用调优时比较有用
其它配置可以在spark的官网查阅:
http://spark.apache.org/docs/latest/configuration.html
--properties-file FILE #可以将属性配置写到一个文本中用这个选项加载,默认加载的是conf/spark-defaults.conf.
这里要注意:
Spark的配置属性优先级为:--conf配置的属性>-- properties-file指定的配置文件中的属性>conf/spark-defaults.conf。优先级高的属性会覆盖优先级低的。
--driver-memory MEM #配置driver的最大使用内存,一般为2g-8g,默认1g,不宜太大
--driver-java-options #用于添加一些Java虚拟机参数,比如:
--executor-memory MEM #分配给每个executor的内存量默认1g,一般不要超过30g.
--executor-cores NUM #设置单个executor能并发执行task数,根据job设置,推荐值2-16 (这里不是指CPU数,集群不限制CPU使用)默认为1
--num-executors NUM #设置executor的数量,默认启动2个.
通过spark-submit –help可以看到spark-submit的三种用法。
Usage: spark-submit [options] <app jar | python file> [app arguments]
2、根据job的id杀死某个job,仅支持在standalone和Mesos模式下使用
Usage: spark-submit --kill [submission ID] --master [spark://...]
3、查看某个job的状态,仅支持在standalone和Mesos模式下使用
Usage: spark-submit --status [submission ID] --master [spark://...]
在spark on yarn模式下,仅使用第一种。提交job的常用选项及说明:
--master MASTER_URL #指定spark应用的运行模式可选项包括spark://host:port, mesos://host:port, yarn, local.若以spark on yarn模式运行应用则需选择yarn
--deploy-mode DEPLOY_MODE #设定部署应用的方式可选项有:client和cluster
在client模式下,driver进程会运行在本地,可以在程序运行中进行交互,一般在实验环境中使用,也是默认的部署形式,spark-shell就是以这个模式运行的。
在cluster模式下,主节点会随机选取一个slave节点启动driver进程,不占用master节点资源,适合在生产环境使用。
--class CLASS_NAME #指定jar包的main函数所在类(不写后缀,适用于java和scala编写的应用)。比如:com.foo.Main
--name NAME #可以为你的应用在运行时指定一个个性化的名字,这样在ui中就能很容易的找到你的程序啦,比如 –name myAppilication
--jars JARS #指定程序运行需要的额外的依赖jar包,比如:--jars /home/Hadoop/myjar.jar
--packages #以maven坐标的形式引入jar依赖,坐标之间以逗号分隔。会自动搜索本地maven仓库、maven中央仓库或者以 --repositories指定的其它远程仓库。坐标的格式为:groupId:artifactId:version.
--exclude-packages #以逗号分隔的groupId:artifactId,用来排除一些依赖,在解决依赖冲突时比较有用,一般作为--packages 的修正使用。
--repositories #以逗号分隔的远程maven仓库列表,和--packages.配合使用。
--conf PROP=VALUE #指定Spark的配置属性。
常用的属性及配置如下:
--conf spark.storage.memoryFraction=0.1 #设置内存用来作为cache的比例,0.1 为10% (默认为0.6),如果不用内存cache,设置为0
--conf spark.hadoop.fs.hdfs.impl.disable.cache=true #禁止使用内存cache
--conf spark.default.parallelism=400 #控制Spark中的分布式shuffle过程默认使用的task数量,默认Others: total number of cores on all executor nodes or 2, whichever is larger,我们建议为每一个CPU核(core)分配2-3个任务
--conf spark.hadoop.mapreduce.input.fileinputformat.split.minsize=134217728 #调整split文件大小
--conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" #打印gc信息,在应用调优时比较有用
其它配置可以在spark的官网查阅:
http://spark.apache.org/docs/latest/configuration.html
--properties-file FILE #可以将属性配置写到一个文本中用这个选项加载,默认加载的是conf/spark-defaults.conf.
这里要注意:
Spark的配置属性优先级为:--conf配置的属性>-- properties-file指定的配置文件中的属性>conf/spark-defaults.conf。优先级高的属性会覆盖优先级低的。
--driver-memory MEM #配置driver的最大使用内存,一般为2g-8g,默认1g,不宜太大
--driver-java-options #用于添加一些Java虚拟机参数,比如:
--executor-memory MEM #分配给每个executor的内存量默认1g,一般不要超过30g.
--verbose, -v #打印额外的debug 输出
--executor-cores NUM #设置单个executor能并发执行task数,根据job设置,推荐值2-16 (这里不是指CPU数,集群不限制CPU使用)默认为1
--num-executors NUM #设置executor的数量,默认启动2个.