【Spark架构】存储原理

一、整体架构

Spark存储介质包括内存和磁盘等。Spark的存储采用了主从模式,也就是Master/Slave模式,整个存储模块使用了前面介绍的RPC的通信方式。其中,Master负责整个应用程序运行期间的数据块元数据的管理和维护,而Slave一方面负责本地数据块的状态信息上报给Master,另一方面接受从Master传来的执行命令,如获取数据块状态、删除RDD/数据块等命令。在每个Slave中存在数据传输通道,根据需要在Slave之间进行远程数据的读取和写入。

根据数据生命周期过程中进行的消息进行通信。

  1. 在应用程序启动后,SparkContext会创建Driver端的SparkEnv,在该SparkEnv中实列化BlockManager和BlockManagerMaster,在BlockManagerMaster内部创建消息通信的终端点BlockManagerMasterEndPoint。
  2. 在Executor启动时候,也会创建SparkEnv,在该SparkEnv中实列化BlockManger和负责数据传输服务的BlockTransferService终端点的引用。在BlockManger初始化的过程中,一方面会加入BlockManagerMasterEndpoint终端点的引用,另一方面会创建Executor消息通信BlockManagerSlaveEndpoint终端点,并把该终端点的引用注册到Driver中,这样Dirver和Executor相互持有通信终端点的引用,可以在应用程序执行过程中进行消息通信。
  3.  

猜你喜欢

转载自blog.csdn.net/hebaojing/article/details/87953671