EMR叢集中由多個不同的節點執行個體類型組成,他們分別是主執行個體節點(Master),核心執行個體節點(Core)和計算執行個體節點(Task),每一種不同的執行個體在部署的時候會部署完全不同的服務進程,以完成完全不同的任務。舉例來說,我們會在主執行個體節點(Master)上部署 Hadoop HDFS 的 Namenode 服務,Hadoop YARN 的 ResourceManager 服務,而在核心執行個體節點(Core)上部署 Datanode 服務,Hadoop YARN 的 NodeManager 服務,在計算執行個體節點(Task)顧名思義,只進行計算,部署 Hadoop YARN 的 NodeManager 服務,不部署任何 HDFS 相關的服務。

在建立叢集的時候需要確定對應的三種執行個體類型的 ECS 規格,相同執行個體類型的 ECS 在同一個執行個體組內。並且可以在後期通過擴容來擴容對應執行個體組內的機器數量(主執行個體組除外)。
说明 計算執行個體節點(Task)從3.2.0及以後版本開始支援。

Master 主執行個體

主執行個體是叢集服務的管控等組件的部署的節點,舉例來說,Hadoop YARN 的 ResourceManager 就部署在主執行個體節點上。使用者可以通過 SSH 的方式串連到主執行個體上,通過軟體的 Web UI 來查看叢集上的服務的運行情況。同時當需要進行快速的測試或者運行作業的時候,也可以登入到主執行個體上,通過命令列來直接提交作業。當叢集開啟了高可用的時候會有2個主執行個體節點,預設只有1個。

Core 核心執行個體

核心執行個體是被主執行個體管理的執行個體節點。上面會運行 Hadoop HDFS 的 Datanode 服務,並儲存所有的資料。同時也會部署計算服務,比如 Hadoop YARN 的 NodeManager 服務,來執行計算任務。為滿足儲存資料量或者是計算量上升的需要,核心執行個體可以隨時的擴容,不影響當前叢集的正常運行。核心使用可以使用多種不同的儲存介質來儲存資料。參考磁碟介紹。

Task 計算執行個體

計算執行個體是專門負責計算的執行個體節點,是一個可選的執行個體類型。如果核心執行個體的計算能力足夠的情況下,可以不使用計算執行個體。計算執行個體可以在任何時候快速的為叢集增加額外的計算能力,如 Hadoop 的 MapReduce tasks, Spark executors 等。在計算執行個體上不會儲存 HDFS 的資料,因此在計算執行個體上不運行 Hadoop HDFS 的 Datanode服務。計算執行個體可以隨時的新增和減少,都不會影響到現有叢集的運行。計算執行個體節點的減少可能會引起 MapReduce 和 Spark 的作業的失敗,能否成功取決於該計算服務的重試容錯能力。