第38课: BlockManager架构原理、运行流程图和源码解密
BlockManager是管理整个Spark运行时数据的读写,包含数据存储本身,在数据存储的基础之上进行数据读写。由于Spark是分布式的,所有BlockManager也是分布式的,BlockManager本身相对而言是一个比较大的模块,Spark中有非常多的模块:调度模块、资源管理模块等等。BlockManager是另外一个非常重要的模块,BlockManager本身源码量非常大。本节从BlockManager原理流程对BlockManager做深刻的理解。在Shuffle读写数据的时候, 我们需要读写BlockManager。因此BlockManager是至关重要的内容。
编写一个业务代码WordCount.scala,通过观察WordCount运行时候BlockManager的日志来理解BlockManager的运行。
WordCount.scala代码如下:
1. package com.dt.spark.sparksql
2.
3. import org.apache.log4j.{Level,Logger}
4. importorg.apache.spark.SparkConf
5. importorg.apache.spark.SparkContext
6. importorg.apache.spark.internal.config
7. import org.apache.spark.rdd.RDD
8.
9. /**
10. * 使用Scala开发本地测试的SparkWordCount程序
11. *