You are here

Apakah kegunaan secondary name-node?

Istilah "secondary name-node" sebetulnya kurang tepat. Secondary name-node sebetulnya bukan name-node, karena data-node tidak dapat terhubung ke secondary name-node, dan tidak dapat menggantikan primary name-node jika terjadi kegagalan.

Untuk memahami kegunaan secondary namenode, pertama-tama kita perlu mengetahui bahwa namenode mempunyai 2 file untuk menyimpan secara persistent meta data untuk HDFS seperti Namespace, block information, dll. File tersebut adalah fsimage, yaitu snapshot dari filesystem ketika namenode di-start, dan edit logs, yaitu urutan perubahan yang dilakukan pada filesystem sejak namenode dinyalakan.

Satu-satunya kegunaan secondary name-node adalah untuk melakukan checkpoint atau update terhadap fsimage dan mengurangi ukuran edit logs, agar jika terjadi namenode restart tidak diperlukan waktu yang lama untuk membarukan fsimage. Secara periodik, secondary name-node mengunduh fsimage dan edits log yang terkini dari name-node, menggabungkannya menjadi fsimage yang baru, kemudian mengupload kembali ke primary (dan satu-satunya) namenode. Lihat User Guide untuk keterangan lebih lanjut.

Jadi jika namenode fail dan dapat di-restart di mesin yang sama, tidak perlu dilakukan shutdown terhadap data node, hanya perlu restart mesin namenode saja. Jika mesin yang lama tidak dapat digunakan lagi, maka perlu mengkopi image terakhir ke mesin yang lain. Image ini dapat ditemukan di node yang sebelumnya digunakan sebagai namenode jika memungkinkan, atau di secondary namenode. Jika hal ini terjadi, maka seluruh cluster perlu direstart karena image yang didapat adalah image pada checkpoint terakhir, yaitu tanpa edit logs yang dibuat di antara checkpoint dan failure, yang berarti kemungkinan ada perubahan namespace yang tidak terekam.