文档章节

troubleshooting JVM GC导致的shuffle文件拉取失败

crayzer_yixiu
 crayzer_yixiu
发布于 2016/10/30 16:55
字数 566
阅读 39
收藏 0

        有时会出现的一种情况,非常普遍,在spark的作业中;shuffle file not found。(spark作业中,非常非常常见的)而且,有的时候,它是偶尔才会出现的一种情况。有的时候,出现这种情况以后,会重新去提交stage、task。重新执行一遍,发现就好了。没有这种错误了。

log怎么看?

  • 用client模式去提交你的spark作业。比如standalone client;yarn client。一提交作业,直接可以在本地看到刷刷刷更新的log。
  • spark.shuffle.io.maxRetries 3
    //意思就是说,shuffle文件拉取的时候,如果没有拉取到(拉取失败),最多或重试几次(会重新拉取几次文件),默认是3次。
    
    spark.shuffle.io.retryWait 5s
    //意思就是说,每一次重试拉取文件的时间间隔,默认是5s钟。

 

  • 默认情况下,假如说第一个stage的executor正在进行漫长的full gc。第二个stage的executor尝试去拉取文件,结果没有拉取到,默认情况下,会反复重试拉取3次,每次间隔是五秒钟。最多只会等待3 * 5s = 15s。如果15s内,没有拉取到shuffle file。就会报出shuffle file not found。
  • 针对这种情况,我们完全可以进行预备性的参数调节。增大上述两个参数的值,达到比较大的一个值,尽量保证第二个stage的task,一定能够拉取到上一个stage的输出文件。避免报shuffle file not found。然后可能会重新提交stage和task去执行。那样反而对性能也不好。
    spark.shuffle.io.maxRetries 60
    spark.shuffle.io.retryWait 60s

     

  • 最多可以忍受1个小时没有拉取到shuffle file。只是去设置一个最大的可能的值。full gc不可能1个小时都没结束吧(低概率,没有绝对)。这样呢,就可以尽量避免因为gc导致的shuffle file not found,无法拉取到的问题。

© 著作权归作者所有

crayzer_yixiu
粉丝 26
博文 57
码字总数 87921
作品 0
杭州
高级程序员
私信 提问
spark优化和故障排除

http://spark.apache.org/docs/1.6.2/tuning.html http://blog.csdn.net/anzhsoft/article/details/42417533 1、算子优化、filter + coalecse filter不进行重新分区,coalecse是进行重新分区......

captainliu
2016/11/13
414
0
Spark性能优化篇四:shuffle调优

Spark性能优化篇四:shuffle调优 shuffle调优 调优概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此,如果要让作业...

u010262291
2018/05/30
0
0
ganglia监控hadoop各指标说明

监控指标大致如下: default.shuffleInput dfs.datanode jvm mapred.shuffleOutput rpc metricssystem dfs.datanode.blockChecksumOpavgtime 块校验平均时间 dfs.datanode.blockChecksumOpnu......

vieky
2012/12/28
2.9K
0
SpringStreaming+Kafka

摘自 : Spark踩坑记——Spark Streaming+Kafka SpringStreaming+Kafka 1.SpringStreaming+Kafka 接受数据和发送数据 (1)SparkStreaming 接受kafka方式 基于Received的方式 基于DirectKafkaSt......

auguszero
2018/09/06
0
0
Spark参数详解 一(Spark1.6)

Spark参数详解 (Spark1.6) 参考文档:Spark官网 在Spark的web UI在“Environment”选项卡中列出Spark属性。这是一个很有用的地方,可以检查以确保属性设置正确。注意,只有通过spark-defau...

利伊奥克儿
2019/01/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

每天AC系列(六):有效的括号

1 题目 LeetCode第20题,这题比较简单,匹配括号. 2 栈 这是栈的典型应用,括号匹配,当然不需要直接使用栈,使用一个StringBuilder即可: if(s.isEmpty()) return true;char a = s.charAt(0);...

Blueeeeeee
今天
27
0
Spring AOP-06-切入点类型

切入点是匹配连接点的拦截规则。之前使用的是注解@Pointcut,该注解是AspectJ中的。除了这个注解之外,Spring也提供了其他一些切入点类型: • 静态方法切入点StaticMethodMatcherPointcut •...

moon888
昨天
90
0
Class Loaders in Java

1. Introduction to Class Loaders Class loaders are responsible for loading Java classes during runtime dynamically to the JVM (Java Virtual Machine). Also, they are part of the ......

Ciet
昨天
96
0
以Lazada为例,看电商系统架构演进

什么是Lazada? Lazada 2012年成立于新加坡,是东南亚第一电商,2016年阿里投资10亿美金,2017年完成对lazada的收购。 业务模式上Lazada更偏重自营,类似于亚马逊,自建仓储和为商家提供服务...

春哥大魔王的博客
昨天
62
0
【自用】 Flutter Timer 简单用法

dart: void _startTime() async { _timer = Timer(Duration(seconds: sec), () { fun(xxx,yyy,zzz); }); } @override void dispose() { _timer.cancel()......

Tensor丨思悟
昨天
65
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部