Topik ini menjawab beberapa pertanyaan umum tentang ZooKeeper.
- Apa yang harus dilakukan jika layanan ZooKeeper tidak stabil dan tiba-tiba restart?
- Bagaimana cara bermigrasi dengan lancar dari direktori data ZooKeeper ke direktori data baru?
Apa yang harus saya lakukan jika layanan ZooKeeper tidak stabil dan tiba-tiba restart?
Layanan ZooKeeper mungkin tidak stabil karena berbagai penyebab. Penyebab paling umum adalah jumlah node ZooKeeper (znodes) atau ukuran snapshot yang terlalu besar. ZooKeeper menggunakan memori untuk memelihara semua znodes dan menyinkronkan data di antara znodes. Jika jumlah znodes atau ukuran snapshot terlalu besar, layanan menjadi tidak stabil. ZooKeeper adalah layanan koordinasi terdistribusi dan tidak dimaksudkan sebagai sistem file. Kami menyarankan Anda menjaga jumlah znodes kurang dari 100.000 dan ukuran setiap snapshot kurang dari 800 MB.
- Untuk melihat jumlah znodes dalam kluster, buka tab Monitoring pada halaman detail kluster di konsol E-MapReduce (EMR).
- Untuk melihat ukuran snapshot, lakukan langkah-langkah berikut:
- Pada tab Configure halaman layanan ZooKeeper, cari parameter dataDir dan peroleh nilainya. Nilai tersebut menunjukkan direktori data ZooKeeper.
- Jalankan perintah berikut untuk melihat ukuran snapshot di direktori data:
ls -lrt /mnt/disk1/zookeeper/data/version-2/snapshot*Jika jumlah znodes atau ukuran snapshot terlalu besar, periksa distribusi znodes. Kemudian, hentikan aplikasi tingkat atas yang menggunakan ZooKeeper secara berlebihan berdasarkan distribusi znodes.
Bagaimana cara bermigrasi dengan lancar dari direktori data ZooKeeper ke direktori data baru?
Jika Anda ingin mengubah direktori data ZooKeeper ke yang baru karena masalah seperti ruang disk tidak cukup atau performa disk buruk, ikuti langkah-langkah berikut pada setiap node di kluster Anda untuk mencapai migrasi data yang lancar tanpa mengganggu layanan ZooKeeper.
null Dalam contoh berikut, direktori data ZooKeeper perlu diubah dari /mnt/disk1/zookeeper ke /mnt/disk2/zookeeper. Di kluster, node master-1-2 adalah pemimpin, dan node master-1-1 dan master-1-3 adalah pengikut. Kami menyarankan Anda melakukan operasi pada pengikut terlebih dahulu, lalu pada pemimpin selama migrasi data.
- Ubah direktori data dan simpan konfigurasi.
- Pada tab Configure halaman layanan ZooKeeper, cari parameter dataDir dan ubah nilainya menjadi /mnt/disk2/zookeeper.
- Di bagian bawah tab Configure, klik Save.
- Di kotak dialog Save, konfigurasikan parameter Alasan Eksekusi dan klik Save.
- Sebarkan konfigurasi klien.
- Di pojok kanan atas tab Configure halaman layanan ZooKeeper, klik Deploy Client Configuration.
- Di kotak dialog yang muncul, konfigurasikan parameter Alasan Eksekusi dan klik OK.
- Di pesan Confirm, klik OK.
- Opsional:Verifikasi bahwa direktori data baru telah ditentukan.
- Masuk ke kluster EMR Anda dalam mode SSH. Untuk informasi lebih lanjut, lihat Masuk ke kluster.
- Jalankan perintah berikut untuk melihat nilai parameter dataDir di file konfigurasi zoo.cfg:
cat /etc/emr/zookeeper-conf/zoo.cfgHasil yang dikembalikan menunjukkan bahwa direktori data ZooKeeper telah diubah ke direktori baru.
- Hentikan node master-1-1.
- Pada tab Status halaman layanan ZooKeeper, temukan node master-1-1 dan klik Stop di kolom Tindakan.
- Di kotak dialog yang muncul, konfigurasikan parameter Alasan Eksekusi dan klik OK.
- Di pesan Confirm, klik OK.
- Ubah direktori data.
- Masuk ke node master kluster EMR dalam mode SSH. Untuk informasi lebih lanjut, lihat Masuk ke kluster.
- Jalankan perintah berikut untuk mengubah direktori data dan mengonfigurasi izin terkait untuk node master-1-1:
sudo rm -rf /mnt/disk2/zookeeper && sudo cp -rf /mnt/disk1/zookeeper /mnt/disk2/zookeeper && sudo chown hadoop:hadoop -R /mnt/disk2/zookeeper
- Mulai ulang node master-1-1.
- Pada tab Status halaman layanan ZooKeeper, temukan node master-1-1 dan klik Start di kolom Tindakan.
- Di kotak dialog yang muncul, konfigurasikan parameter Alasan Eksekusi dan klik OK.
- Di pesan Confirm, klik OK.
Segarkan halaman sampai nilai parameter Status Kesehatan untuk node master-1-1 adalah Healthy.
- Masuk ke node master-1-3 dan ulangi Langkah 4 hingga Langkah 6.
- Masuk ke node master-1-2 dan ulangi Langkah 4 hingga Langkah 6.Data bermigrasi ke direktori data baru setelah nilai parameter Status Kesehatan untuk semua node adalah Sehat.null Node master-1-2 adalah pemimpin awal. Setelah Anda klik Hentikan untuk node tersebut di kolom Tindakan, node tersebut menjadi pengikut. Node master-1-1 atau master-1-3 menjadi pemimpin.