重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Spark程序优化所需要关注的几个关键点——最主要的是数据序列化和内存优化
目前创新互联公司已为上1000+的企业提供了网站建设、域名、网络空间、网站运营、企业网站设计、隆尧网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。spark 设置相关参数
问题1:reduce task数目不合适
解决方法:需根据实际情况调节默认配置,调整方式是修改参数spark.default.parallelism。通常,reduce数目设置为core数目的2到3倍。数量太大,造成很多小任务,增加启动任务的开销;数目太少,任务运行缓慢。
如果你想了解大数据的学习路线,想学习大数据知识以及需要免费的学习资料可以加群:784789432.欢迎你的加入。每天下午三点开直播分享基础知识,晚上20:00都会开直播给大家分享大数据项目实战。
问题2:shuffle磁盘IO时间长
解决方法:设置spark.local.dir为多个磁盘,并设置磁盘为IO速度快的磁盘,通过增加IO来优化shuffle性能;
问题3:map|reduce数量大,造成shuffle小文件数目多
解决方法:默认情况下shuffle文件数目为map tasks * reduce tasks. 通过设置spark.shuffle.consolidateFiles为true,来合并shuffle中间文件,此时文件数为reduce tasks数目;
问题4:序列化时间长、结果大
解决方法:Spark默认使.用JDK.自带的ObjectOutputStream,这种方式产生的结果大、CPU处理时间长,可以通过设置spark.serializer为org.apache.spark.serializer.KryoSerializer。另外如果结果已经很大,可以使用广播变量;
问题5:单条记录消耗大
解决方法:使用mapPartition替换map,mapPartition是对每个Partition进行计算,而map是对partition中的每条记录进行计算;
问题6:collect输出大量结果时速度慢
解决方式:collect源码中是把所有的结果以一个Array的方式放在内存中,可以直接输出到分布式?文件系统,然后查看文件系统中的内容;
问题7:任务执行速度倾斜
解决方式:如果是数据倾斜,一般是partition key取的不好,可以考虑其它的并行处理方式 ,并在中间加上aggregation操作;如果是Worker倾斜,例如在某些worker上的executor执行缓慢,可以通过设置spark.speculation=true 把那些持续慢的节点去掉;
问题8:通过多步骤的RDD操作后有很多空任务或者小任务产生
解决方式:使用coalesce或repartition去减少RDD中partition数量;
问题9:Spark Streaming吞吐量不高
解决方式:可以设置spark.streaming.concurrentJobs
schedule调度相关参数
spark.cores.max
CPU计算资源的数量,spark.cores.max 这个参数决定了在Standalone和Mesos模式下,一个Spark应用程序所能申请的CPU Core的数量
这个参数需要注意的是,这个参数对Yarn模式不起作用,YARN模式下,资源由Yarn统一调度管理
CPU资源的数量由另外两个直接配置Executor的数量和每个Executor中core数量的参数决定。
spark.scheduler.mode
单个Spark应用内部调度的时候使用FIFO模式还是Fair模式
spark.speculation
spark.speculation(推测机制开关)以及spark.speculation.interval(),spark.speculation.quantile, spark.speculation.multiplier等参数调整Speculation行为的具体细节
spark.executor.memory xxG 设置内存
spark.executor.cores x 设置每个excutor核数
spark.cores.max xx 设置大核使用数量
若如出现各种timeout,executor lost ,task lost
spark.network.timeout 根据情况改成300(5min)或更高。,默认为 120(120s),配置所有网络传输的延时,如果没有主动设置以下参数,默认覆盖其属性
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。