title: FetchFailedException or MetadataFetchFailedException when processing big data set
body: <p>When I run the parsing code with 1 GB dataset it completes without any error. But, when I attempt 25 gb of data at a time I get below errors. I'm trying to understand how can I avoid below failures. Happy to hear any suggestions or ideas.</p>
  
  <p>Differnt errors,</p>
  
  <pre><code>org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output location for shuffle 0
  
  org.apache.spark.shuffle.FetchFailedException: Failed to connect to ip-xxxxxxxx
  
  org.apache.spark.shuffle.FetchFailedException: Error in opening FileSegmentManagedBuffer{file=/mnt/yarn/nm/usercache/xxxx/appcache/application_1450751731124_8446/blockmgr-8a7b17b8-f4c3-45e7-aea8-8b0a7481be55/08/shuffle_0_224_0.data, offset=12329181, length=2104094}
  </code></pre>
  
  <p>Cluster Details:</p>
  
  <blockquote>
    <p>Yarn: 8 Nodes<br>
    Total cores: 64<br>
    Memory: 500 GB<br>
    Spark Version: 1.5  </p>
  </blockquote>
  
  <p>Spark submit statement:</p>
  
  <pre><code>spark-submit --master yarn-cluster \
                          --conf spark.dynamicAllocation.enabled=true \
                          --conf spark.shuffle.service.enabled=true \
                          --executor-memory 4g \
                          --driver-memory 16g \
                          --num-executors 50 \
                          --deploy-mode cluster \
                          --executor-cores 1 \
                          --class my.parser \
                          myparser.jar \
                          -input xxx \
                          -output xxxx \
  </code></pre>
  
  <p>One of stack trace:</p>
  
  <pre><code>at org.apache.spark.MapOutputTracker$$anonfun$org$apache$spark$MapOutputTracker$$convertMapStatuses$2.apply(MapOutputTracker.scala:460)
  at org.apache.spark.MapOutputTracker$$anonfun$org$apache$spark$MapOutputTracker$$convertMapStatuses$2.apply(MapOutputTracker.scala:456)
  at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:772)
  at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
  at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108)
  at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:771)
  at org.apache.spark.MapOutputTracker$.org$apache$spark$MapOutputTracker$$convertMapStatuses(MapOutputTracker.scala:456)
  at org.apache.spark.MapOutputTracker.getMapSizesByExecutorId(MapOutputTracker.scala:183)
  at org.apache.spark.shuffle.hash.HashShuffleReader.read(HashShuffleReader.scala:47)
  at org.apache.spark.rdd.ShuffledRDD.compute(ShuffledRDD.scala:90)
  at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:297)
  at org.apache.spark.rdd.RDD.iterator(RDD.scala:264)
  at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
  at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:297)
  at org.apache.spark.rdd.RDD.iterator(RDD.scala:264)
  at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
  at org.apache.spark.scheduler.Task.run(Task.scala:88)
  at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  at java.lang.Thread.run(Thread.java:745)
  </code></pre>