2016-02-23 8 views

cevap

4

master üzerinde kaynak koduna hızlı bir vızıltı (https://github.com/kayousterhout/spark-1/blob/master/core/src/main/scala/org/apache/spark/executor/Executor.scala#L179)

Aslında şu: Ben her görev JARs deserializing şüpheleniyorsanız bu hat (taskFiles, taskJars, taskBytes) itibaren

val (taskFiles, taskJars, taskBytes) = Task.deserializeWithDependencies(serializedTask) 
    updateDependencies(taskFiles, taskJars) 
    task = ser.deserialize[Task[Any]](taskBytes, Thread.currentThread.getContextClassLoader) 

    // If this task has been killed before we deserialized it, let's quit now. Otherwise, 
    // continue executing the task. 
    if (killed) { 
     // Throw an exception rather than returning, because returning within a try{} block 
     // causes a NonLocalReturnControl exception to be thrown. The NonLocalReturnControl 
     // exception will be caught by the catch block, leading to an incorrect ExceptionFailure 
     // for the task. 
     throw new TaskKilledException 
    } 

    attemptedTask = Some(task) 
    logDebug("Task " + taskId + "'s epoch is " + task.epoch) 
    env.mapOutputTracker.updateEpoch(task.epoch) 

; Benim durumumda, yardımcı olmayan bir 136 MB şişman JAR var.

+3

Haklı olduğundan emin değilim. Burada seyir: https://github.com/kayousterhout/spark-1/blob/master/core/src/main/scala/org/apache/spark/executor/Executor.scala#L371, 'jars' sadece içerirler isim ve zaman damgası, bu yüzden desirialze için çok zaman almamalı – lev