部分调优
spark-env.sh:
spark.speculation
的节点上也尝试执行该任务的一个副本。打开此选项会帮助减少大规模集群中个别较慢的任务带来的影响。默认值false
spark.driver.memory
为driver进程分配的内存。注意:在客户端模式中,不能在SparkConf中直接配置该项,因为driver JVM进程已经启动了。默认1g
spark.executor.memory
为每个executor进程分配的内存。默认1g
spark.serializer
指定用来进行序列化的类库,包括通过网络传输数据或缓存数据时的序列化。为了速度,推荐使用KryoSerializer。默认JavaSerializer
spark.local.dirs
Spark用于写中间数据,如RDD Cache,Shuffle,Spill等数据的位置,我们可以配置多个路径(用逗号分隔)到多个磁盘上增加整体IO带宽
加大吞吐量,内存。
增加配置
spark-env.sh
export SPARK_LOCAL_DIRS=/itcast/spark-2.0.1/sparktmp/diska,/itcast/spark-
2.0.1/sparktmp/diskb,/itcast/spark-2.0.1/sparktmp/diskc,/itcast/spark-
2.0.1/sparktmp/diskd,/itcast/spark-2.0.1/sparktmp/diske,/itcast/spark-
2.0.1/sparktmp/diskf,/itcast/spark-2.0.1/sparktmp/diskg
增加配置
spark-defaults.conf
spark.shuffle.file.buffer 64k
spark.reducer.maxSizeInFlight 96m
spark.shuffle.memoryFraction 0.3
spark.shuffle.consolidateFiles true
配置hive
hive-site.xml增加
<property>
<name>spark.shuffle.file.buffer</name>
<value>64k</value>
</property>
<property>
<name>spark.reducer.maxSizeInFlight</name>
<value>96m</value>
</property>
<property>
<name>spark.shuffle.memoryFraction</name>
<value>0.3</value>
</property>
<property>
<name>spark.shuffle.consolidateFiles</name>
<value>true</value>
</property>