部分调优

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>