Topik ini menjelaskan perintah hdfs haadmin yang disediakan oleh Hadoop Distributed File System (HDFS) untuk mengimplementasikan ketersediaan tinggi (HA).
Informasi latar belakang
Sebelum Hadoop versi 2.0.0, setiap kluster hanya memiliki satu NameNode. Jika NameNode tidak tersedia, kluster juga menjadi tidak tersedia hingga NameNode memulihkan koneksi dengan kluster.
Penempatan Single-NameNode memengaruhi ketersediaan kluster HDFS dalam aspek berikut:
Jika terjadi pengecualian seperti node mati, kluster menjadi tidak tersedia dan Anda harus memulai ulang NameNode secara manual.
Selama pemeliharaan, seperti pembaruan perangkat lunak atau peningkatan perangkat keras, kluster juga menjadi tidak tersedia untuk sementara waktu.
Fitur HDFS HA dapat digunakan untuk menyelesaikan masalah tersebut. Dalam mode HA, dua NameNode ditempatkan dalam mode aktif-standby. Anda dapat melakukan pergantian antara NameNode untuk memulihkan layanan kluster jika terjadi node mati atau selama pemeliharaan.
Batasan
Anda harus mengaktifkan High Service Availability saat membuat kluster E-MapReduce (EMR).
HDFS HA
Kluster EMR HA menggunakan Quorum Journal Manager (QJM) untuk mengimplementasikan HDFS HA. Untuk informasi lebih lanjut tentang arsitektur HA, lihat Arsitektur. Untuk informasi tentang topologi penyebaran HDFS, lihat Topologi Penyebaran HDFS.
Perintah HDFS HA umum
Lihat status semua NameNode
Jalankan perintah hdfs haadmin -getAllServiceState untuk menanyakan status semua NameNode. Contoh perintah:
su - hdfs
hdfs haadmin -getAllServiceStateContoh respons sukses:
master-1-1.c-dadaf2f2bea8****.cn-hangzhou.emr.aliyuncs.com:8021 standby
master-1-2.c-dadaf2f2bea8****.cn-hangzhou.emr.aliyuncs.com:8021 active
master-1-3.c-dadaf2f2bea8****.cn-hangzhou.emr.aliyuncs.com:8021 standbyPeriksa apakah NameNode dalam keadaan aktif atau standby
Jalankan perintah hdfs haadmin -getServiceState <serviceId>. Nilai aktif atau standby akan dikembalikan.
Lihat status nn1.
su - hdfs hdfs haadmin -getServiceState nn1Lihat status nn2.
su - hdfs hdfs haadmin -getServiceState nn2Lihat status nn3.
su - hdfs hdfs haadmin -getServiceState nn3
Lakukan pergantian antara NameNode aktif dan standby
Jalankan perintah hdfs haadmin -failover <serviceId dari aktif saat ini> <serviceId dari aktif baru> untuk melakukan pergantian antara NameNode aktif dan standby.
Sebagai contoh, nn1 adalah NameNode aktif saat ini. Setelah Anda menjalankan perintah berikut, nn2 akan bertindak sebagai NameNode aktif baru. Jika nn2 sudah menjadi NameNode aktif, nn2 tetap bertindak sebagai NameNode aktif setelah perintah dijalankan.
su - hdfs
hdfs haadmin -failover nn1 nn2Contoh respons sukses:
Failover to NameNode at master-1-2.c-dadaf2f2bea8****.cn-hangzhou.emr.aliyuncs.com successful