部分调优
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>