首页 > 其他 > 详细

运维系列:06、Spark调优

时间:2014-09-12 11:35:43      阅读:373      评论:0      收藏:0      [点我收藏+]

1、垃圾回收

在conf/spark-env.sh中添加
SPARK_JAVA_OPTS=-verberos:gc -XX;+PrintGCDetails -XX:+PrintGCTimeStamps
如果发现集群耗费过多时间在垃圾回收上,可以通过spark.storage.memoryFaction调低RDD缓存的使用,这个值的默认值是0.66。
 
如果要运行的是耗时很久的Spark作业,可以通过设定spark.cleaner.ttl为一个非零值n,表示每隔n秒清理一次元数据。默认Spark不会清理任何元数据。
 

2、persist()缓存

默认都以非序列化模式存储,以节省读取数据时的反序列化开销。如:
    MEMORY_ONLY
    MEMORY_AND_DISK
    DISK_ONLY
 
如果存储级别后面添加了_SER后缀,Spark会在存储时对数据进行序列化,以节省存储空间。
    MEMORY_ONLY_SER
    MEMORY_AND_DISK_SER
    DISK_ONLY_SER
 

3、序列化

默认使用Java内置的序列化算法,建议使用KyroSerialier算法,针对性的做了优化。
可以通过spark.serializer改成org.apache.spark.KryoSerializer来切换
// TODO 实验
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

运维系列:06、Spark调优

原文:http://www.cnblogs.com/chanxiu/p/3967818.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!