–master spark://masterhost:7077 #指定主服务器名称和端口
–executor-memory 1G 每个executor内存1G(Xmx=1G), 该参数和物理资源有关,设置过小运行内存就少,不够程序开销,设置过大,会造成内存浪费,导至实际使用的物理CPU核数会减少,速度反而慢。
–executor-cores 4 启动4个核
–driver-memory 1G 每个driver1G内存 ,因为有4个core,所以总使用就是1*4G存
–conf spark.default.parallelism=1000 #参数说明:该参数用于设置每个stage的默认task数量。这个参数极为重要,如果不设置可能会直接影响你的Spark作业性能。Spark官网建议的设置原则是,设置该参数为num-executors * executor-cores的2~3倍较为合适,比如Executor的总CPU core数量为300个,那么设置1000个task是可以的,此时可以充分地利用Spark集群的资源。
–conf spark.storage.memoryFraction=0.6 #默认情况Spark采用运行内存(spark.executor.memory)的60%来进行RDD缓存。这表明在任务执行期间,有40%的内存可以用来进行对象创建。如果任务运行速度变慢且JVM频繁进行内存回收,或者内存空间不足,那么降低缓存大小设置可以减少内存消耗,可以降低spark.storage.memoryFraction的大小
–conf spark.shuffle.memoryFraction=0.3 #含义:shuffle操作(聚合、连接、分组等等)能够使用的可用堆内存(堆大小减去300MB保留空间)的比例,默认值是0.2。如果shuffle阶段使用的内存比例超过这个值,就会溢写到磁盘。设定方法:取决于计算逻辑中shuffle逻辑的复杂度,如果会产生大量数据,那么一定要调高。在我们的实践中,一般都设定在0.3左右。但是,如果调太高之后发现频繁GC,那么就是执行用户代码的execution内存不够用了,适当降低即可。
spark-submit的一些参数
最新推荐文章于 2022-10-29 13:01:50 发布