美文网首页
The various 2G limit in Spark

The various 2G limit in Spark

作者: witgo | 来源:发表于2016-09-07 11:00 被阅读0次
DAG:

影响DAG性能的有以下几点:

  1. 反序列化TaskResult实例时使用的SerializerInstance没有重用
  2. TaskSchedulerImpl.resourceOffers方法只能单线程处理, 且生成其返回TaskDescription实例 时需要调用耗时的序列化操作
  3. taskScheduler中有不必要的序列化操作
    taskScheduler在创建TaskDescription实例时调用Task.serializeWithDependencies(task, sched.sc.addedFiles, sched.sc.addedJars, ser)把task和其依赖信息序列化, 但是在SPARK-2521: Broadcast RDD object once per TaskSet (instead of sending it for every task) 合并之后
    ResultTask和ShuffleMapTask类不在包含rdd和closure等复杂对象,没有必要独立序列化, 可以把TaskDescription类改成下面这样:
class TaskDescription[T](
val taskId: Long,
val attemptNumber: Int,
val executorId: String,
val name: String,
val index: Int, 
val task: Task[T]) extends Serializable

相关文章

网友评论

      本文标题:The various 2G limit in Spark

      本文链接:https://www.haomeiwen.com/subject/owjjettx.html