Bagi orang yang baru menggunakan Apache HBase (versi 0.90 dan yang lebih baru), konfigurasi port jaringan yang digunakan oleh sistem mungkin sedikit berlebihan.
Dalam posting blog ini, Anda akan mempelajari semua port TCP yang digunakan oleh proses HBase yang berbeda dan bagaimana dan mengapa mereka digunakan (semua di satu tempat) — untuk membantu administrator memecahkan masalah dan mengatur pengaturan firewall, dan membantu pengembang baru cara men-debug.
Sebuah cluster HBase khas memiliki satu master aktif, satu atau beberapa master cadangan, dan daftar server wilayah. Master cadangan adalah master siaga yang menunggu untuk menjadi master aktif berikutnya. Sebelum mereka aktif, mereka tidak mendengarkan di port mana pun. (Pelajari lebih lanjut tentang cara kerja skalabilitas HBase di sini.)
Setiap server di cluster mendengarkan port utama untuk permintaan dari klien dan/atau server HBase lainnya. Setiap server juga memiliki server UI web Jetty tertanam.
Diagram berikut menunjukkan komunikasi antara komponen yang berbeda. (Komponen biru milik cluster HBase, biasanya di belakang firewall; komponen abu-abu adalah klien eksternal, biasanya di luar firewall cluster HBase; komponen hijau adalah browser web, biasanya juga di luar firewall.)
- Aplikasi klien berbicara dengan Apache ZooKeeper untuk mengetahui lokasi master dan server wilayah meta (wilayah root dihapus di HBase versi 0.96).
- Aplikasi klien berbicara dengan server wilayah untuk membaca dari/menulis ke/memindai tabel.
- Aplikasi klien berbicara dengan master untuk mendapatkan informasi tentang tabel yang ada, membuat/menghapus tabel secara dinamis, menambah/menghapus kelompok kolom.
- Master berbicara dengan server region untuk membuka/menutup/move/split/flush/compact region.
- Master menempatkan data di ZooKeeper untuk menyimpan master aktif dan lokasi server wilayah meta, membuat tugas pemisahan log, melacak status server wilayah.
- Server region membaca data di ZooKeeper untuk melakukan pemisahan log, melacak lokasi master, dan status cluster.
- Server wilayah berbicara dengan master untuk melaporkan dimulainya server wilayah, dimuat.
- Terkadang, server wilayah berbicara dengan wilayah meta untuk memeriksa status wilayah, membuat wilayah anak baru dalam pemisahan wilayah.
- Klien REST berbicara dengan server REST untuk mengakses HBase.
- Klien Thrift berbicara dengan server Thrift untuk mengakses HBase.
- Pengguna mengakses UI web master dari browser.
- Pengguna mengakses UI web server wilayah dari browser.
- Pengguna mengakses UI web server REST dari browser.
- Pengguna mengakses UI web server Thrift dari browser.
Beberapa cluster HBase mungkin memiliki daftar server REST atau Thrift. Baik server REST maupun server Thrift bersifat opsional; mereka diperlukan hanya jika Anda ingin memberikan akses REST/Thrift ke klaster HBase Anda. Untuk HBase, mereka hanyalah aplikasi klien lain. Sama seperti server HBase lainnya, mereka juga mendengarkan port utama untuk permintaan klien, dan port UI web.
Tabel berikut menunjukkan port yang digunakan oleh aplikasi klien untuk berbicara dengan cluster HBase, pengguna untuk memeriksa informasi cluster, dan komponen HBase yang berbeda untuk berbicara satu sama lain.
Komponen | Parameter konfigurasi | Nilai default | Tempat bekas |
Penjaga Kebun Binatang |
| 2181 | 1,5,6 |
Master |
| 60000 | 3,7 |
Master |
| 60010 | 11 |
Server wilayah |
| 60020 | 2,4,8 |
Server wilayah |
| 60030 | 12 |
REST server |
| 8080 | 9 |
REST server |
| 8085 | 13 |
Server barang bekas |
| 9090 | 10 |
Server barang bekas |
| 9095 | 14 |
* Diperkenalkan di HBase versi 0.94.5. Mereka juga dapat ditentukan dengan opsi baris perintah --infoport
saat memulai server terkait.
** Mereka juga dapat ditentukan dengan opsi baris perintah -p
saat memulai server yang sesuai.
Satu port tidak tercantum dalam tabel — port node nama HDFS — karena di sini bukan parameter terpisah untuknya. Ini dikonfigurasi sebagai bagian dari "hbase.root" (misalnya, "hdfs://namenode.foobar.com:35802/hbase") dengan port HDFS NameNode dikonfigurasi menjadi 35802. Kecuali ditentukan lain dalam nilai " hbase.root”, defaultnya adalah 8020.
Selain port utama, setiap server dalam cluster (kecuali ZooKeeper) juga mendengarkan port UI web. UI web adalah server Jetty tertanam di server yang sesuai. UI web menyediakan informasi yang dapat dibaca manusia tentang server terkait — misalnya, dump thread dan log lokal. UI web master memiliki tautan ke semua UI web server wilayah, yang menjadikannya titik masuk yang sempurna untuk memeriksa status cluster HBase saat ini.
Server REST/Thrift adalah proxy opsional untuk HBase. Mereka berbicara dengan HBase dengan cara yang sama dengan aplikasi klien HBase lainnya. Namun, mereka biasanya digunakan di dalam cluster HBase, bersama dengan server HBase lainnya.
Aplikasi klien biasanya disebarkan keluar dari klaster HBase. Klien REST/Thrift juga dikerahkan di luar cluster. Jika klaster HBase berada di belakang firewall, port yang sesuai ini harus dibuka secara default:
Untuk mengizinkan akses aplikasi klien:
- 2181 (hbase.zookeeper.property.clientPort)
- 60000 (hbase.master.port)
- 60020 (hbase.regionserver.port)
Untuk mengizinkan akses klien REST/Thrift:
- 8080 (hbase.rest.port)
- 9090 (hbase.regionserver.thrift.port)
Jika akses UI web dari luar firewall diizinkan, port UI web yang sesuai juga harus terbuka:
- 60010 (hbase.master.info.port)
- 60030 (hbase.regionserver.info.port)
- 8085 (hbase.rest.info.port)
- 9095 (hbase.thrift.info.port)
Kesimpulan
Dalam postingan ini, Anda mendapatkan ringkasan port yang digunakan oleh komponen internal HBase, aplikasi klien, dan oleh pengguna/administrator, yang diatur berdasarkan kasus penggunaan.
Namun, karena HBase berjalan di atas HDFS, penting juga untuk mengetahui port HDFS. Untuk menjalankan MapReduce dengan HBase, Anda perlu mengetahui port MapReduce juga. Untuk port terkait Hadoop ini, silakan merujuk ke Referensi Cepat Port Default Hadoop .
Jimmy Xiang adalah Insinyur Perangkat Lunak di tim Platform.
> Ada pertanyaan? Posting ke Forum Komunitas untuk HBase.