MAPREDUCE服务 MRS-Spark2x与其他组件的关系:Spark和HDFS的关系

时间:2024-04-01 09:39:26

Spark和HDFS的关系

通常,Spark中计算的数据可以来自多个数据源,如Local File、HDFS等。最常用的是HDFS,用户可以一次读取大规模的数据进行并行计算。在计算完成后,也可以将数据存储到HDFS。

分解来看,Spark分成控制端(Driver)和执行端(Executor)。控制端负责任务调度,执行端负责任务执行。

读取文件的过程如图1所示。

图1 读取文件过程
读取文件步骤的详细描述如下所示:
  1. Driver与HDFS交互获取File A的文件信息。
  2. HDFS返回该文件具体的Block信息。
  3. Driver根据具体的Block数据量,决定一个并行度,创建多个Task去读取这些文件Block。
  4. 在Executor端执行Task并读取具体的Block,作为RDD(弹性分布数据集)的一部分。

写入文件的过程如图2所示。

图2 写入文件过程
HDFS文件写入的详细步骤如下所示:
  1. Driver创建要写入文件的目录。
  2. 根据RDD分区分块情况,计算出写数据的Task数,并下发这些任务到Executor。
  3. Executor执行这些Task,将具体RDD的数据写入到步骤1创建的目录下。
support.huaweicloud.com/productdesc-mrs/mrs_08_007105.html