Apache HBase Master (HMaster) gagal dimulai di Azure HDInsight
Artikel ini menjelaskan langkah-langkah pemecahan masalah dan kemungkinan resolusi untuk masalah saat berinteraksi dengan kluster Azure HDInsight.
Skenario: Master startup cannot progress, in holding-pattern until region comes online
Masalah
HMaster gagal memulai karena peringatan berikut:
hbase:namespace,,<timestamp_region_create>.<encoded_region_name>.is NOT online; state={<encoded_region_name> state=OPEN, ts=<some_timestamp>, server=<server_name>}; ServerCrashProcedures=true. Master startup cannot progress, in holding-pattern until region onlined.
Misalnya, nilai parameter dapat bervariasi dalam pesan yang sebenarnya:
hbase:namespace,,1546588612000.0000010bc582e331e3080d5913a97000. is NOT online; state={0000010bc582e331e3080d5913a97000 state=OPEN, ts=1633935993000, server=<wn fqdn>,16000,1622012792000}; ServerCrashProcedures=false. Master startup cannot progress, in holding-pattern until region onlined.
Penyebab
HMaster memeriksa direktori WAL di server wilayah sebelum mengembalikan wilayah OPEN secara online. Dalam hal ini, jika direktori tersebut tidak ada, direktori tersebut tidak memulai
Resolusi
Buat direktori dummy ini menggunakan perintah:
sudo -u hbase hdfs dfs -mkdir /hbase-wals/WALs/<wn fqdn>,16000,1622012792000
Hidupkan ulang layanan HMaster dari UI Ambari.
Jika Anda menggunakan hbase-2.x, lihat informasi selengkapnya tentang cara menggunakan hbck2 untuk menetapkan namespace dan tabel meta
Skenario: Kegagalan pengubahan nama atom
Masalah
File tak terduga teridentifikasi selama proses memulai.
Penyebab
Selama proses memulai, HMaster melakukan banyak langkah inisialisasi, termasuk memindahkan data dari folder scratch (.tmp) ke folder data. HMaster juga mengamati folder write-ahead log (WAL) untuk melihat apakah ada server wilayah yang tidak responsif.
HMaster melakukan perintah daftar dasar pada folder WAL. Jika di suatu waktu HMaster melihat file yang tidak terduga dalam salah satu folder ini, ia akan melemparkan pengecualian dan tidak mulai.
Resolusi
Periksa tumpukan panggilan dan coba tentukan folder mana yang mungkin menyebabkan masalah (misalnya, mungkin saja folder WAL atau folder .tmp). Kemudian, di Azure Storage Explorer atau dengan menggunakan perintah HDFS, coba temukan file masalah. Biasanya, file ini disebut *-renamePending.json
. (File *-renamePending.json
adalah file jurnal yang digunakan untuk mengimplementasikan operasi penggantian nama atom di driver WASB. Karena bug dalam implementasi ini, file-file ini dapat ditinggalkan setelah proses crash, dan seterusnya.) Hapus paksa file ini baik di Cloud Explorer atau dengan menggunakan perintah HDFS.
Kadang-kadang, mungkin juga terdapat file sementara bernama semacam $$$.$$$
di lokasi ini. Anda harus menggunakan perintah HDFS ls
untuk melihat file ini; Anda tidak dapat melihat file di Azure Storage Explorer. Untuk menghapus file ini, gunakan perintah HDFS hdfs dfs -rm /\<path>\/\$\$\$.\$\$\$
.
Setelah Anda menjalankan perintah ini, seharusnya HMaster segera dimulai.
Skenario: Tidak ada alamat server yang tercantum
Masalah
Anda mungkin melihat pesan yang menunjukkan bahwa hbase: meta
tabel tidak online. Menjalankan hbck
mungkin mengakibatkan laporan bahwa hbase: meta table replicaId 0 is not found on any region.
Dalam log HMaster, Anda mungkin melihat pesan: No server address listed in hbase: meta for region hbase: backup <region name>
.
Penyebab
HMaster tidak dapat menginisialisasi setelah memulai ulang HBase.
Resolusi
Di shell HBase, masukkan perintah berikut (ubah nilai aktual sebagaimana berlaku):
scan 'hbase:meta' delete 'hbase:meta','hbase:backup <region name>','<column name>'
Hapus entri
hbase: namespace
. Entri ini mungkin merupakan eror yang sama dengan yang sedang dilaporkan ketika tabelhbase: namespace
dipindai.Mulai ulang HMaster aktif dari Ambari UI untuk memunculkan HBase dalam keadaan berjalan.
Di shell HBase, untuk memunculkan semua tabel offline, jalankan perintah berikut:
hbase hbck -ignorePreCheckPermission -fixAssignments
Skenario: java.io.IOException: Timedout
Masalah
Waktu HMaster habis dengan pengecualian fatal yang mirip dengan: java.io.IOException: Timedout 300000ms waiting for namespace table to be assigned
.
Penyebab
Anda mungkin mengalami masalah ini jika Anda memiliki banyak tabel dan wilayah yang belum dibersihkan saat memulai ulang layanan HMaster Anda. Batas waktu adalah cacat yang diketahui dengan HMaster. Tugas mulai ulang klaster yang umum bisa memakan waktu lama. HMaster akan dimatikan jika tabel namespace layanan belum ditetapkan. Tugas startup yang panjang terjadi di mana sejumlah besar data yang tidak di-unflushed ada dan batas waktu lima menit tidak cukup.
Resolusi
Dari Apache Ambari UI, buka HBase > Configs. Di file
hbase-site.xml
kustom, tambahkan pengaturan berikut ini:Key: hbase.master.namespace.init.timeout Value: 2400000
Mulai ulang layanan yang diperlukan (HMaster, dan mungkin layanan HBase lainnya).
Skenario: Server wilayah sering dimulai ulang
Masalah
Simpul melakukan reboot secara berkala. Dari log server wilayah Anda mungkin melihat entri yang mirip dengan:
2017-05-09 17:45:07,683 WARN [JvmPauseMonitor] util.JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 31000ms
2017-05-09 17:45:07,683 WARN [JvmPauseMonitor] util.JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 31000ms
2017-05-09 17:45:07,683 WARN [JvmPauseMonitor] util.JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 31000ms
Penyebab: batas waktu sesi zookeeper
Jeda JVM GC regionserver
yang panjang. Jeda menyebabkan regionserver
tidak responsif dan tidak dapat mengirim detak jantung ke HMaster dalam batas waktu sesi zookeeper 40s. HMaster percaya regionserver
sudah mati, membatalkan dan menghidupkan regionserver
ulang.
Ubah batas waktu sesi Zookeeper, bukan hanya zookeeper.session.timeout
pengaturan hbase-site
yang perlu diubah tetapi juga maxSessionTimeout
pengaturan zoo.cfg
Zookeeper.
Akses UI Ambari, buka HBase -> Konfigurasi -> Pengaturan, di bagian Batas Waktu, ubah nilai Batas Waktu Sesi Zookeeper.
Akses Ambari UI, buka Zookeeper -> Configs -> Custom
zoo.cfg
, tambahkan/ubah pengaturan berikut. Pastikan nilainya sama denganzookeeper.session.timeout
HBase.Key: maxSessionTimeout Value: 120000
Mulai ulang layanan yang diperlukan.
Penyebab: RegionServer kelebihan beban
Ikuti Jumlah wilayah per RS - batas atas untuk menghitung batas atas.
Misalnya: 8000 (Region server Heap -- Xmx in MB) * 0.4 (hbase.regionserver.global.memstore.size) /64 (hbase.regionserver.hlog.blocksize/2) = 50
Untuk mengurangi, tingkatkan skala kluster HBase Anda.
Skenario: Kegagalan pemisahan log
Masalah
HMasters gagal muncul pada kluster HBase.
Penyebab
Kegagalan konfigurasi pengaturan HDFS dan HBase untuk akun penyimpanan sekunder.
Resolusi
set hbase.rootdir: wasb://@.blob.core.windows.net/hbase
dan mulai kembali layanan di Ambari.
Langkah berikutnya
Jika Anda tidak melihat masalah atau tidak dapat memecahkan masalah, kunjungi salah satu saluran berikut untuk mendapatkan dukungan lebih lanjut:
Dapatkan jawaban dari para ahli Azure melalui Dukungan Komunitas Azure.
Hubungi @AzureSupport - akun Microsoft Azure resmi untuk meningkatkan pengalaman pelanggan. Menghubungkan komunitas Microsoft Azure ke sumber daya yang tepat: jawaban, dukungan, dan pakar.
Jika Anda memerlukan bantuan lainnya, Anda dapat mengirimkan permintaan dukungan dari portal Microsoft Azure. Pilih Dukungan dari bilah menu atau buka hub Bantuan + Dukungan. Untuk informasi selengkapnya, tinjau Cara membuat permintaan dukungan Microsoft Azure. Akses ke Manajemen Langganan dan dukungan tagihan disertakan dengan langganan Microsoft Azure, dan Dukungan Teknis disediakan melalui salah satu Paket Dukungan Azure.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk