Topik ini menjelaskan topologi penerapan komponen Hadoop Distributed File System (HDFS) pada kluster non-ketersediaan tinggi (non-HA) dan kluster ketersediaan tinggi (HA) di E-MapReduce (EMR).
Kluster non-HA
Pada kluster non-HA, satu NameNode menangani semua permintaan baca dan tulis. Secondary NameNode berjalan bersamaan dengan NameNode pada node master yang sama, tetapi tidak menyediakan failover—satu-satunya tugasnya adalah secara berkala menggabungkan file EditLog ke dalam file FsImage agar proses restart NameNode tetap cepat.
| Node | Komponen | Deskripsi |
|---|---|---|
| master-1-1 (emr-header-1 pada beberapa versi) | NameNode | Menyediakan layanan baca dan tulis eksternal. |
| master-1-1 (emr-header-1 pada beberapa versi) | Secondary NameNode | Menggabungkan file EditLog ke dalam file FsImage untuk mempercepat restart NameNode. Tidak menyediakan kemampuan failover. |
| core-1-1 atau emr-worker-x | DataNode | Mengelola dan menyimpan blok data HDFS pada disk data node tersebut. |
Kluster HA
Pada kluster HA, dua atau lebih NameNode berjalan dalam konfigurasi Active/Standby. Hanya NameNode dalam status Active yang menyediakan layanan baca dan tulis. Ketika NameNode aktif menjadi tidak tersedia, ZKFailoverController (ZKFC) mendeteksi kegagalan tersebut melalui pemeriksaan kesehatan dan memicu failover dengan mengambil lock eksklusif di ZooKeeper, sehingga meningkatkan status NameNode standby menjadi Active.
JournalNode menjaga sinkronisasi antar NameNode standby: NameNode aktif menuliskan setiap perubahan namespace ke kuorum JournalNode, dan NameNode standby terus-menerus membaca perubahan tersebut. Sebuah kelompok tiga JournalNode dapat mentoleransi satu kegagalan—NameNode dapat melayani permintaan selama minimal dua JournalNode dalam kondisi sehat dan dapat ditulis.
| Node | Komponen | Deskripsi |
|---|---|---|
| master-1-1 (emr-header-1 pada beberapa versi) | ZKFailoverController (ZKFC) | Memantau kesehatan NameNode lokal dan mengelola sesi ZooKeeper untuk melakukan pemilihan primary/secondary serta alih bencana. |
| master-1-1 (emr-header-1 pada beberapa versi) | NameNode | NameNode dalam status Active menyediakan layanan baca dan tulis. Hanya NameNode primary yang dapat menyediakan layanan baca dan tulis eksternal. NameNode dalam status Standby tetap tersinkronisasi dan siap untuk failover. |
| master-1-1 (emr-header-1 pada beberapa versi) | JournalNode | Menyimpan file EditLog yang ditulis oleh NameNode aktif. Tiga JournalNode biasanya diterapkan sebagai satu kelompok; minimal dua harus dalam kondisi sehat agar NameNode dapat melayani permintaan. |
| master-1-1 (emr-header-1 pada beberapa versi) | ZooKeeper | Menyediakan layanan koordinasi terdistribusi yang digunakan oleh ZKFC untuk pemilihan dan oleh komponen EMR lainnya untuk pengelolaan status HA. |
| master-1-2 (emr-header-2 pada beberapa versi) | ZKFC | Peran yang sama seperti pada master-1-1. |
| master-1-2 (emr-header-2 pada beberapa versi) | NameNode | Peran yang sama seperti pada master-1-1. |
| master-1-2 (emr-header-2 pada beberapa versi) | JournalNode | Peran yang sama seperti pada master-1-1. |
| master-1-2 (emr-header-2 pada beberapa versi) | ZooKeeper | Peran yang sama seperti pada master-1-1. |
| master-1-3 (emr-header-3 atau emr-worker-1 pada beberapa versi) | \*ZKFC | Peran yang sama seperti pada master-1-1. Catatan Secara default, tiga pasangan ZKFC dan NameNode diterapkan untuk kluster HA yang menggunakan Hadoop 3.x di EMR V5.8.0 atau versi yang lebih baru. Satu pasangan diterapkan pada master-1-3. |
| master-1-3 (emr-header-3 atau emr-worker-1 pada beberapa versi) | \*NameNode | Peran yang sama seperti pada master-1-1. Catatan Secara default, tiga pasangan ZKFC dan NameNode diterapkan untuk kluster HA yang menggunakan Hadoop 3.x di EMR V5.8.0 atau versi yang lebih baru. Satu pasangan diterapkan pada master-1-3. |
| master-1-3 (emr-header-3 atau emr-worker-1 pada beberapa versi) | JournalNode | Peran yang sama seperti pada master-1-1. |
| master-1-3 (emr-header-3 atau emr-worker-1 pada beberapa versi) | ZooKeeper | Peran yang sama seperti pada master-1-1. |
| core-1-1 atau emr-worker-x | DataNode | Mengelola dan menyimpan blok data HDFS pada disk data node tersebut. |
* Diterapkan secara default untuk Hadoop 3.x di EMR V5.8.0 atau versi yang lebih baru.