conf/spark-env.sh参数说明:
- SPAKR_WORKER_MEMORY : 指单个Worker节点在本机上可以使用的内存上限, 如512m, 2g等. 默认大小为本机所有内存减去1GB
- SPARK_EXECUTOR_MEMORY : 指单个进程(应用程序)在每个机器上可以使用的内存 , 默认是1g
- SPARK_WORKER_CORES : 指单个Worker节点在本机上可以使用的CPU core上限, 默认是所有core
partition的使用
Spark中有partition概念, 每个partition都会对应一个task, task越多在处理大数据量时越有效率, 但是task不是越多越好, 当数据量不大时task越多反而效率越低.
如何设置task的个数呢, 有三种方式:
- 方式一: 配置spark-default.conf文件
spark.default.parallelism 100
spark.sql.shuffle.partitions 50 (针对 spark sql的task数量)
- 方式二: 编写代码时指定task的个数
rdd.repartition(100).map(xxx)
- 方式三: spark-submit提交运行时进行配置
spark-submit --master xxx --conf spark.default.parallelism=100 --class xxx xxx.jar
优先级: 方式三 > 方式二 > 方式一
范围: worker > executor > task = partition
扫描二维码关注公众号,回复:
11108278 查看本文章