[ 
https://issues.apache.org/jira/browse/SPARK-28362?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16936206#comment-16936206
 ] 

holdenk edited comment on SPARK-28362 at 9/23/19 9:34 PM:
----------------------------------------------------------

Why is your default parallelism configured to `149 * 13 (cores) * 20 = 38740`? 
That seems maybe a bit high for 149 physical machines.


was (Author: holdenk):
Why is your default parallelism configured to `49 * 13 (cores) * 20 = 38740`? 
That seems maybe a bit high for 49 physical machines.

> Error communicating with MapOutputTracker when many tasks are launched 
> concurrently
> -----------------------------------------------------------------------------------
>
>                 Key: SPARK-28362
>                 URL: https://issues.apache.org/jira/browse/SPARK-28362
>             Project: Spark
>          Issue Type: Bug
>          Components: Spark Core
>    Affects Versions: 2.4.2
>         Environment: AWS EMR 5.24.0 with Yarn, Spark 2.4.2 and Beam 2.12.0
>            Reporter: Peter Backx
>            Priority: Major
>
> It looks like the scheduler is unknowingly creating a DoS attack on the 
> MapOutputTracker when many tasks are launched at the same time.
> We are running a Beam on Spark job on AWS EMR 5.24.0 (Yarn, Spark 2.4.2, Beam 
> 2.12.0)
> The job is running on 150 r4.4xlarge machines in cluster mode with executors 
> sized to take up the full machine. So we have 1 machine acting as driver and 
> 149 executors. Default parallelism is 149 * 13 (cores) * 20 = 38740
> When a new stage is launched, sometimes tasks will error out with the 
> message: "Error communicating with MapOutputTracker". 
> I've gone over the logs and it looks like the following is happening:
>  # When the final task of a previous stage completes, the driver launches new 
> tasks (driver log):
>  # 
>  ## 19/07/10 14:04:57 INFO DAGScheduler: Submitting 38740 missing tasks from 
> ShuffleMapStage 29 (MapPartitionsRDD[632] at mapToPair at 
> GroupCombineFunctions.java:147) (first 15 tasks are for partitions Vector(0, 
> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14))
>  # Executors use the MapOutputTracker to fetch the location of the data they 
> need to work on (executor log):
>  ## 19/07/10 14:04:57 INFO MapOutputTrackerWorker: Don't have map outputs for 
> shuffle 36, fetching them
>  19/07/10 14:04:57 INFO MapOutputTrackerWorker: Doing the fetch; tracker 
> endpoint = 
> NettyRpcEndpointRef([spark://mapoutputtrac...@ip-172-28-95-2.eu-west-1.compute.internal:42033])
>  # Usually all executors timeout after 2 minutes. In rare cases some of the 
> executors seem to receive a reply (executor log):
>  ## 19/07/10 14:06:57 ERROR MapOutputTrackerWorker: Error communicating with 
> MapOutputTracker
>  org.apache.spark.rpc.RpcTimeoutException: Futures timed out after [120 
> seconds]. This timeout is controlled by spark.rpc.askTimeout
>  at 
> [org.apache.spark.rpc.RpcTimeout.org|http://org.apache.spark.rpc.rpctimeout.org/]$apache$spark$rpc$RpcTimeout$$createRpcTimeoutException(RpcTimeout.scala:47)
>  # Driver marks the task as failed and retries (driver log):
>  ## 19/07/10 14:06:57 WARN TaskSetManager: Lost task 1490.0 in stage 29.0 
> (TID 2724105, ip-172-28-94-245.eu-west-1.compute.internal, executor 248): 
> org.apache.spark.SparkException: Error communicating with MapOutputTracker
>  at org.apache.spark.MapOutputTracker.askTracker(MapOutputTracker.scala:270)
> I can't find any log with the reason why the executors don't get a reply from 
> the MapOutputTracker. 
> So my questions:
>  * Is there a separate log file for the MapOutputTracker where I can find 
> more info?
>  * Is the parallelism set too high? It seems to be fine for the rest of the 
> job.
>  * Is there anything else we can do? Is there maybe a way to stagger the task 
> launches so they don't happen all at once?
> This is not super critical, but I'd like to get rid of the errors. It happens 
> 2 or 3 times during a 10 hour job and retries always work correctly.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to