Executors reports heartbeat to HeartbeatReceiver RPC Endpoint on the driver. Executors provide in-memory storage for RDDs using via Block Manager.
BlockManager is a key-value store of blocks of data (block storage). BlockManager acts as a local cache that runs on every node in a Spark cluster. BlockManager provides interface for uploading and fetching blocks both locally and remotely using various stores.
Read my previous articles on Apache Spark
Deep Understanding of SparkContext & Application’s Driver Process