Blockmanager解密

1, Executor实例化的时候会通过BlockManager.initialize来实例化Executor上的BlockManager并且创建BlockManagerSlaveEndpoint这个消息循环体来接受Driver中的BlockManagerMaster发过来的指令,例如删除Block等;

 

env.blockManager.initialize(conf.getAppId)

 

2, BlockManagerSlaveEndpoint实例化后,Executor上的BlockManager需要向Driver上的BlockManagerMasterEndpoint注册:

 

master.registerBlockManager(blockManagerId, maxMemory, slaveEndpoint)

 

3, BlockManagerMasterEndpoint接收到Executor上的注册信息并进行处理:

case RegisterBlockManager(blockManagerId, maxMemSize, slaveEndpoint) =>
  register(blockManagerId, maxMemSize, slaveEndpoint)
  context.reply(true)

 

4, 

 

 

 

 

 

你可能感兴趣的:(spark)