Tutorial HBase: Pengenalan HBase dan Studi Kasus Facebook



Blog tutorial HBase ini memperkenalkan Anda tentang apa itu HBase & fitur-fiturnya. Ini juga mencakup studi kasus Facebook Messenger untuk memahami manfaat HBase.

Seperti yang kami sebutkan di blog, HBase adalah bagian penting dari ekosistem Hadoop kami. Jadi sekarang, saya ingin membawa Anda melalui tutorial HBase, di mana saya akan memperkenalkan Anda pada Apache HBase, dan kemudian, kita akan membahas studi kasus Facebook Messenger. Kami akan membahas topik-topik berikut di blog tutorial HBase ini:

Tutorial Apache HBase: Sejarah

Mari kita mulai dengan sejarah HBase dan mengetahui bagaimana HBase telah berkembang selama periode waktu tertentu.





Sejarah HBase - Tutorial HBase - Edureka

  • Apache HBase dibuat mengikuti BigTable Google, yang digunakan untuk mengumpulkan data dan melayani permintaan untuk berbagai layanan Google seperti Maps, Finance, Earth, dll.
  • Apache HBase dimulai sebagai proyek oleh perusahaan Powerset for Natural Language Search, yang menangani kumpulan data yang sangat besar dan jarang.
  • Apache HBase pertama kali dirilis pada Februari 2007. Kemudian pada Januari 2008, HBase menjadi sub proyek Apache Hadoop.
  • Pada tahun 2010, HBase menjadi proyek tingkat atas Apache.

Tutorial HBase | Database NoSQL | Edureka



hashmap vs hashtable di java

Setelah mengetahui sejarah Apache HBase, Anda pasti penasaran untuk mengetahui apa itu Apache HBase? Mari kita melangkah lebih jauh dan melihatnya.

Tutorial Apache HBase: Pengantar HBase

HBase adalah open source, multidimensi, terdistribusi, scalable dan a Database NoSQL ditulis dalam bahasa Jawa. HBase berjalan di atas HDFS (Sistem File Terdistribusi Hadoop) dan menyediakan kemampuan seperti BigTable ke Hadoop. Ini dirancang untuk menyediakan cara yang toleran terhadap kesalahan dalam menyimpan kumpulan besar kumpulan data yang jarang.

Sejak itu, HBase mencapai throughput tinggi dan latensi rendah dengan menyediakan Akses Baca / Tulis yang lebih cepat pada kumpulan data yang besar. Oleh karena itu, HBase adalah pilihan untuk aplikasi yang membutuhkan akses cepat & acak ke sejumlah besar data.



Ini menyediakan kompresi, operasi dalam memori, dan filter Bloom (struktur data yang memberi tahu apakah suatu nilai ada dalam satu set atau tidak) untuk memenuhi persyaratan baca-tulis yang cepat dan acak.

Mari kita pahami melalui contoh: Mesin jet menghasilkan berbagai jenis data dari berbagai sensor seperti sensor tekanan, sensor suhu, sensor kecepatan, dll. Yang menunjukkan kesehatan mesin. Ini sangat berguna untuk memahami masalah dan status penerbangan. Operasi Mesin Berkelanjutan menghasilkan data 500 GB per penerbangan dan ada sekitar 300 ribu penerbangan per hari. Jadi, Engine Analytics yang diterapkan ke data tersebut hampir secara real time dapat digunakan untuk mendiagnosis masalah secara proaktif dan mengurangi waktu henti yang tidak direncanakan. Ini membutuhkan lingkungan terdistribusi untuk menyimpan data dalam jumlah besar pembacaan dan penulisan acak yang cepat untuk pemrosesan waktu nyata. Di sini, HBase datang untuk menyelamatkan. Saya akan berbicara tentang HBase Baca dan Tulis secara rinci di blog saya berikutnya di Arsitektur HBase .

Seperti yang kita ketahui, HBase adalah database NoSQL. Nah, sebelum memahami lebih jauh tentang HBase, mari kita bahas dulu tentang database NoSQL dan tipenya.

Tutorial Apache HBase: Database NoSQL

NoSQL artinya Tidak hanya SQL . Database NoSQL dimodelkan sedemikian rupa sehingga dapat merepresentasikan data selain format tabular, database relasional unkile. Ini menggunakan format yang berbeda untuk mewakili data dalam database dan dengan demikian, ada berbagai jenis database NoSQL berdasarkan format representasi mereka. Sebagian besar database NoSQL memanfaatkan ketersediaan dan kecepatan melebihi konsistensi. Sekarang, mari kita lanjutkan dan pahami tentang berbagai jenis database NoSQL dan format representasi mereka.

Toko Nilai-Kunci:

Ini adalah database tanpa skema yang berisi kunci dan nilai. Setiap kunci, menunjuk ke nilai yang merupakan array byte, bisa berupa string, BLOB, XML, dll. Mis. Lamborghini adalah kunci dan dapat menunjukkan nilai Gallardo, Aventador, Murciélago, Reventón, Diablo, Huracán, Veneno, Centenario, dll.

Database penyimpanan Key-Value: Aerospike, Couchbase, Dynamo, FairCom c-treeACE, FoundationDB, HyperDex, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak, Berkeley DB.

Kasus penggunaan

Penyimpanan nilai kunci menangani ukuran dengan baik dan pandai memproses aliran konstan operasi baca / tulis dengan latensi rendah. Ini membuat mereka sempurna untukPreferensi pengguna dan penyimpanan profil,Rekomendasi produk item terbaru dilihat di situs pengecer untuk mengarahkan rekomendasi produk pelanggan di masa mendatang,Kebiasaan berbelanja pelanggan yang melayani iklan menghasilkan iklan yang disesuaikan, kupon, dll. Untuk setiap pelanggan secara waktu nyata.

Berorientasi Dokumen :

Ini mengikuti pasangan nilai kunci yang sama, tetapi semi terstruktur seperti XML, JSON, BSON. Struktur ini dianggap sebagai dokumen.

Basis data Berbasis Dokumen: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB.

Kasus Penggunaan

Karena dokumen mendukung skema fleksibel, penulisan dan partisi baca cepat membuatnya cocok untuk membuat database pengguna di berbagai layanan seperti twitter, situs web e-commerce, dll.

Berorientasi Kolom:

Dalam database ini, data disimpan dalam sel yang dikelompokkan dalam kolom, bukan baris. Kolom secara logis dikelompokkan ke dalam keluarga kolom yang dapat dibuat selama definisi skema atau saat runtime.

Jenis database ini menyimpan semua sel yang sesuai dengan kolom sebagai entri disk kontinu, sehingga membuat akses dan pencarian lebih cepat.

Basis Data Berbasis Kolom: HBase, Accumulo, Cassandra, Druid, Vertica.

Kasus Penggunaan

Ini mendukung penyimpanan besar dan memungkinkan akses baca tulis lebih cepat di atasnya. Hal ini membuat basis data berorientasi kolom cocok untuk menyimpan perilaku pelanggan di situs web e-niaga, sistem keuangan seperti Google Finance dan data pasar saham, peta Google, dll.

Berorientasi Grafik:

Ini adalah representasi grafis fleksibel yang sempurna, digunakan tidak seperti SQL. Jenis database ini dengan mudah memecahkan masalah skalabilitas alamat karena berisi edge dan node yang dapat diperpanjang sesuai dengan persyaratan.

Database berbasis grafik: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog.

Kasus penggunaan

Ini pada dasarnya digunakan dalam deteksi Penipuan, mesin rekomendasi waktu nyata (dalam banyak kasus e-niaga), manajemen data master (MDM), operasi Jaringan dan TI, Identitas dan manajemen akses (IAM), dll.

HBase dan Cassandra adalah dua database berorientasi kolom yang terkenal. Jadi, sekarang membicarakannya ke tingkat yang lebih tinggi, mari kita bandingkan dan pahami perbedaan arsitektur dan cara kerja antara HBase dan Cassandra.

Tutorial HBase: HBase VS Cassandra

  • HBase dimodelkan di BigTable (Google) sementara Cassandra didasarkan pada DynamoDB (Amazon) yang awalnya dikembangkan oleh Facebook.
  • HBase memanfaatkan infrastruktur Hadoop (HDFS, ZooKeeper) sementara Cassandra berevolusi secara terpisah tetapi Anda dapat menggabungkan Hadoop dan Cassandra sesuai kebutuhan Anda.
  • HBase memiliki beberapa komponen yang saling berkomunikasi seperti HBase HMaster, ZooKeeper, NameNode, Region Severs. Sedangkan Cassandra adalah tipe node tunggal, dimana semua node adalah sama dan menjalankan semua fungsi. Setiap node bisa menjadi koordinator ini menghilangkan Single Point of failure.
  • HBase dioptimalkan untuk membaca dan mendukung penulisan tunggal, yang mengarah pada konsistensi yang ketat. HBase mendukung pemindaian berbasis Range, yang membuat proses pemindaian lebih cepat. Sedangkan Cassandra mendukung pembacaan baris tunggal yang mempertahankan konsistensi akhirnya.
  • Cassandra tidak mendukung pemindaian baris berbasis jangkauan, yang memperlambat proses pemindaian dibandingkan dengan HBase.
  • HBase mendukung partisi terurut, di mana baris dari Keluarga Kolom disimpan dalam urutan RowKey, sedangkan di Casandra memerintahkan partisi adalah sebuah tantangan. Karena RowKey mempartisi, proses pemindaian lebih cepat di HBase dibandingkan dengan Cassandra.
  • HBase tidak mendukung penyeimbangan beban baca, satu Server Wilayah melayani permintaan baca dan replika hanya digunakan jika terjadi kegagalan. Sedangkan Cassandra mendukung read load balancing dan dapat membaca data yang sama dari berbagai node. Ini dapat mengganggu konsistensi.
  • Dalam teorema CAP (Konsistensi, Ketersediaan & Partisi -Toleransi) HBase mempertahankan Konsistensi dan Ketersediaan sementara Cassandra berfokus pada Ketersediaan dan Partisi -Toleransi.


Sekarang mari selami lebih dalam dan pahami fitur Apache HBase yang membuatnya sangat populer.

Tutorial Apache HBase: Fitur HBase

  • Membaca dan menulis atom: Pada tingkat baris, HBase menyediakan membaca dan menulis atom. Ini dapat dijelaskan sebagai, selama satu proses baca atau tulis, semua proses lainnya dicegah untuk melakukan operasi baca atau tulis.
  • Pembacaan dan penulisan yang konsisten: HBase memberikan pembacaan dan penulisan yang konsisten karena fitur di atas.
  • Skalabilitas linier dan modular: Karena kumpulan data didistribusikan melalui HDFS, maka set data dapat diskalakan secara linier di berbagai node, serta dapat diskalakan secara modular, karena dibagi di berbagai node.
  • Sharding tabel otomatis dan dapat dikonfigurasi: Tabel HBase didistribusikan di seluruh cluster dan cluster ini didistribusikan ke seluruh wilayah. Region dan cluster ini terpecah, dan didistribusikan ulang seiring dengan pertumbuhan data.
  • API Java yang mudah digunakan untuk akses klien: Ini menyediakan Java API yang mudah digunakan untuk akses terprogram.
  • Gateway hemat dan layanan Web REST-ful: Ini juga mendukung Thrift dan REST API untuk front-end non-Java.
  • Blokir Cache dan Filter Bloom: HBase mendukung Block Cache dan Bloom Filters untuk optimasi permintaan volume tinggi.
  • Dukungan kegagalan otomatis: HBase dengan HDFS menyediakan WAL (Write Ahead Log) di seluruh cluster yang menyediakan dukungan kegagalan otomatis.
  • Tombol baris yang diurutkan: Saat pencarian dilakukan pada berbagai baris, HBase menyimpan kunci baris dalam urutan leksikografis. Dengan menggunakan kunci baris dan stempel waktu yang diurutkan ini, kita dapat membuat permintaan yang dioptimalkan.

Sekarang melanjutkan tutorial HBase ini, izinkan saya memberi tahu Anda apa saja kasus penggunaan dan skenario di mana HBase dapat digunakan dan kemudian, saya akan membandingkan HDFS dan HBase.

Saya ingin menarik perhatian Anda pada skenario di mana HBase paling cocok.

Tutorial HBase: Dimana kita bisa menggunakan HBase?

  • Kita harus menggunakan HBase dimana kita memiliki kumpulan data yang besar (jutaan atau milyaran atau baris dan kolom) dan kita membutuhkan akses cepat, acak dan real time, membaca dan menulis atas data.
  • Kumpulan data didistribusikan di berbagai cluster dan kami membutuhkan skalabilitas tinggi untuk menangani data.
  • Data dikumpulkan dari berbagai sumber data dan merupakan data semi terstruktur atau tidak terstruktur atau kombinasi semuanya. Ini bisa ditangani dengan mudah dengan HBase.
  • Anda ingin menyimpan data berorientasi kolom.
  • Anda memiliki banyak versi kumpulan data dan Anda perlu menyimpan semuanya.

Sebelum saya beralih ke studi kasus Facebook messenger,izinkan saya memberi tahu Anda apa perbedaan antara HBase dan HDFS.

Tutorial HBase: HBase VS HDFS

HDFS adalah sistem file terdistribusi berbasis Java yang memungkinkan Anda menyimpan data besar di beberapa node dalam cluster Hadoop. Jadi, HDFS adalah sistem penyimpanan yang mendasari untuk menyimpan data di lingkungan terdistribusi. HDFS adalah sistem file, sedangkan HBase adalah database (mirip seperti NTFS dan MySQL).

Karena HDFS dan HBase menyimpan semua jenis data (yaitu terstruktur, semi-terstruktur, dan tidak terstruktur) dalam lingkungan terdistribusi, mari kita lihat perbedaan antara sistem file HDFS dan HBase, database NoSQL.

  • HBase menyediakan akses latensi rendah ke sejumlah kecil data dalam kumpulan data besar sementara HDFS menyediakan operasi latensi tinggi.
  • HBase mendukung pembacaan dan penulisan acak sementara HDFS mendukung WORM (Tulis sekali Baca Banyak atau Beberapa kali).
  • HDFS pada dasarnya atau terutama diakses melalui pekerjaan MapReduce sementara HBase diakses melalui perintah shell, Java API, REST, Avro atau Thrift API.

HDFS menyimpan kumpulan data besar dalam lingkungan terdistribusi dan memanfaatkan pemrosesan batch pada data tersebut. Misalnya. ini akan membantu situs web e-niaga untuk menyimpan jutaan data pelanggan dalam lingkungan terdistribusi yang berkembang selama periode waktu yang lama (mungkin 4-5 tahun atau lebih). Kemudian memanfaatkan pemrosesan batch atas data itu dan menganalisis perilaku, pola, persyaratan pelanggan. Kemudian perusahaan dapat mengetahui jenis produk apa, pembelian pelanggan pada bulan apa. Ini membantu untuk menyimpan data yang diarsipkan dan menjalankan pemrosesan batch di atasnya.

Sementara HBase menyimpan data dengan cara berorientasi kolom di mana setiap kolom disimpan bersama sehingga, membaca menjadi lebih cepat memanfaatkan pemrosesan waktu nyata. Misalnya. dalam lingkungan e-niaga yang serupa, ia menyimpan jutaan data produk. Jadi jika Anda mencari produk di antara jutaan produk, itu mengoptimalkan permintaan dan proses pencarian, menghasilkan hasilnya dengan segera (atau Anda dapat mengatakannya secara real time). Detailnya Penjelasan arsitektur HBase , Akan saya bahas di blog saya berikutnya.

Seperti yang kita ketahui HBase didistribusikan melalui HDFS, jadi kombinasi keduanya memberi kita peluang besar untuk menggunakan manfaat keduanya, dalam solusi yang disesuaikan, seperti yang akan kita lihat dalam studi kasus Facebook messenger di bawah ini.

Tutorial HBase: Studi Kasus Facebook Messenger

Platform Perpesanan Facebook bergeser dari Apache Cassandra ke HBase pada November 2010.

Facebook Messenger menggabungkan Pesan, email, obrolan, dan SMS menjadi percakapan waktu nyata. Facebook mencoba membangun infrastruktur yang skalabel dan kuat untuk menangani serangkaian layanan ini.

Pada saat itu infrastruktur pesan menangani lebih dari 350 juta pengguna yang mengirimkan lebih dari 15 miliar pesan dari orang ke orang per bulan. Layanan obrolan mendukung lebih dari 300 juta pengguna yang mengirim lebih dari 120 miliar pesan per bulan.

Dengan memantau penggunaan, mereka menemukan bahwa, dua pola data umum muncul:

cara menjalankan php di windows 10
  • Sekumpulan data temporal pendek yang cenderung mudah berubah
  • Kumpulan data yang terus berkembang dan jarang diakses

Facebook ingin menemukan solusi penyimpanan untuk dua pola penggunaan ini dan mereka mulai menyelidiki untuk mencari pengganti infrastruktur Pesan yang ada.

Sebelumnya pada tahun 2008, mereka menggunakan database sumber terbuka, yaitu Cassandra, yang merupakan penyimpanan nilai kunci dengan konsistensi akhir yang sudah diproduksi untuk melayani lalu lintas untuk Pencarian Kotak Masuk. Tim mereka memiliki pengetahuan yang luar biasa dalam menggunakan dan mengelola database MySQL, jadi peralihan salah satu teknologi merupakan masalah serius bagi mereka.

Mereka menghabiskan beberapa minggu untuk menguji kerangka kerja yang berbeda, untuk mengevaluasi cluster MySQL, Apache Cassandra, Apache HBase, dan sistem lainnya. Mereka akhirnya memilih HBase.

Karena MySQL gagal menangani kumpulan data besar secara efisien, karena indeks dan kumpulan data bertambah besar, kinerjanya menurun. Mereka menemukan Cassandra tidak dapat menangani pola sulit untuk mendamaikan infrastruktur Message baru mereka.

Masalah utamanya adalah:

  • Menyimpan kumpulan besar data yang terus berkembang dari berbagai layanan Facebook.
  • Membutuhkan Database yang dapat memanfaatkan pemrosesan tinggi di atasnya.
  • Kinerja tinggi dibutuhkan untuk melayani jutaan permintaan.
  • Menjaga konsistensi dalam penyimpanan dan kinerja.

Gambar: Tantangan yang dihadapi messenger Facebook

Untuk semua masalah ini, Facebook menemukan solusi yaitu HBase. Facebook mengadopsi HBase untuk melayani messenger Facebook, chat, email, dll karena berbagai fiturnya.

HBase hadir dengan skalabilitas dan kinerja yang sangat baik untuk beban kerja ini dengan model konsistensi yang lebih sederhana daripada Cassandra. Sementara mereka menemukan HBase menjadi yang paling cocok dalam hal persyaratan mereka seperti penyeimbangan beban otomatis dan kegagalan, dukungan kompresi, beberapa pecahan per server, dll.

HDFS, yang merupakan sistem file dasar yang digunakan oleh HBase juga menyediakan beberapa fitur yang mereka butuhkan seperti checksum ujung ke ujung, replikasi, dan penyeimbangan ulang beban otomatis.

Gambar: HBase sebagai solusi untuk messenger Facebook

Saat mereka mengadopsi HBase, mereka juga berfokus untuk mengembalikan hasilnya ke HBase sendiri dan mulai bekerja sama dengan komunitas Apache.

Karena pesan menerima data dari berbagai sumber seperti SMS, obrolan, dan email, mereka menulis server aplikasi untuk menangani semua pengambilan keputusan untuk pesan pengguna. Ini berinteraksi dengan sejumlah besar layanan lain. Lampiran disimpan dalam tumpukan jerami (yang berfungsi pada HBase). Mereka juga menulis layanan penemuan pengguna di atas Apache ZooKeeper yang berbicara dengan layanan infrastruktur lain untuk hubungan pertemanan, verifikasi akun email, keputusan pengiriman, dan keputusan privasi.

Tim Facebook menghabiskan banyak waktu untuk memastikan bahwa setiap layanan ini kuat, andal, dan memberikan kinerja yang baik untuk menangani sistem perpesanan waktu nyata.

Saya harap blog tutorial HBase ini informatif dan Anda menyukainya. Di blog ini, Anda mengenal dasar-dasar HBase dan fitur-fiturnya.Di blog saya berikutnya dari , Saya akan menjelaskan arsitektur HBase dan cara kerja HBase yang membuatnya populer untuk baca / tulis cepat dan acak.

Sekarang Anda telah memahami dasar-dasar HBase, lihat oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia. Kursus Pelatihan Sertifikasi Edureka Big Data Hadoop membantu peserta didik menjadi ahli dalam domain HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume, dan Sqoop menggunakan kasus penggunaan waktu nyata pada Ritel, Media Sosial, Penerbangan, Pariwisata, domain Keuangan.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar dan kami akan menghubungi Anda kembali.