Spark读取外部数据的原理解读

收录于话题

#spark2

#大数据17

#大数据常用技术15

Spark读取外部数据的原理解读_第1张图片

为了简化理解,该文尝试使用SparkContext.textFile()为入口进行分析。但是把这个接口读透了,并不一定了解了原理,因为必须熟悉Spark的任务提交机制才能真正了解。

1、Spark任务提交机制简要分析:

Spark算子分为Transformation和Action。Action会触发任务执行。Count属于action算子,我们翻到RDD.count()函数源码

  /**

   * Return the number of elements in the RDD.

   */

  def count(): Long = sc.runJob(this, Utils.getIteratorSize _).sum

  /**

其实触发了一个runjob任务,其代码定义如下,

Spark读取外部数据的原理解读_第2张图片

runJob最终触发了一个submitJob提交job

Spark读取外部数据的原理解读_第3张图片

该函数有2处地方需要注意(图中已标注),一个是maxPartition

你可能感兴趣的:(spark)