在迁移相关的spark程序到yarn的过程中间,对有些地方的配置进行了调整和优化, 总结起来,常用的一些设置如下:
1. spark.serializer 对象的序列化设置可以设置成spark的序列化类型,相对比较高效和紧凑,网络传输性能比较好
2. spark.kryoserializer.buffer.mb 用来设置对象序列化占用空间大小,当对象比较大的时候需要设置这个选项
3. spark.akka.frameSize 控制通信中消息的最大容量,默认为10M, 可以根据日志中的serialized size of result 来确定是否有问题
以上相关的配置可以通过以下方式或者在环境变量里面设置:
4. spark.storage.memoryFraction 用来控制缓存的堆空间,如果RDD占用内存较小,可以把该参数设置小一点,不然会在启动的时候默认分配2/3的堆内存用来作为cache.
5. 并行相关的设置
a. num-executors 用来设置执行任务的executor