Tutorial HBase: Pengenalan HBase dan Kajian Kes Facebook



Blog tutorial HBase ini memperkenalkan anda kepada apa itu HBase & ciri-cirinya. Ia juga merangkumi kajian kes Facebook Messenger untuk memahami faedah HBase.

Seperti yang telah kami sebutkan di blog, HBase adalah bahagian penting dalam ekosistem Hadoop kami. Jadi sekarang, saya ingin membawa anda melalui tutorial HBase, di mana saya akan memperkenalkan anda kepada Apache HBase, dan kemudian, kita akan melalui kajian kes Facebook Messenger. Kami akan membahas topik berikut dalam blog tutorial HBase ini:

Tutorial Apache HBase: Sejarah

Mari kita mulakan dengan sejarah HBase dan ketahui bagaimana HBase telah berkembang dalam jangka masa tertentu.





Sejarah HBase - Tutorial HBase - Edureka

  • Apache HBase dimodelkan berdasarkan BigTable Google, yang digunakan untuk mengumpulkan data dan melayani permintaan untuk berbagai layanan Google seperti Peta, Kewangan, Bumi dll.
  • Apache HBase bermula sebagai projek oleh syarikat Powerset for Natural Language Search, yang mengendalikan kumpulan data yang besar dan jarang.
  • Apache HBase pertama kali dilancarkan pada Februari 2007. Kemudian pada bulan Januari 2008, HBase menjadi sub projek Apache Hadoop.
  • Pada tahun 2010, HBase menjadi projek peringkat tertinggi Apache.

Tutorial HBase | Pangkalan Data NoSQL | Edureka



Setelah mengetahui mengenai sejarah Apache HBase, anda pasti ingin tahu apa itu Apache HBase? Mari kita melangkah lebih jauh dan melihat-lihat.

Tutorial HBase Apache: Pengenalan HBase

HBase adalah sumber terbuka, multidimensi, diedarkan, berskala dan a Pangkalan data NoSQL ditulis di Jawa. HBase berjalan di atas HDFS (Sistem Fail Didistribusikan Hadoop) dan menyediakan keupayaan seperti BigTable kepada Hadoop. Ia direka untuk menyediakan cara toleransi kesalahan menyimpan koleksi kumpulan data yang jarang.

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



perbezaan antara overloading dan overriding dalam c ++

Ini menyediakan pemampatan, operasi dalam memori dan penapis Bloom (struktur data yang memberitahu sama ada nilai ada dalam satu set atau tidak) untuk memenuhi syarat penulisan baca cepat dan rawak.

Mari kita fahami melalui contoh: Enjin jet menghasilkan pelbagai jenis data dari sensor yang berbeza seperti sensor tekanan, sensor suhu, sensor kelajuan, dan lain-lain yang menunjukkan kesihatan enjin. Ini sangat berguna untuk memahami masalah dan status penerbangan. Operasi Enjin Berterusan menghasilkan data 500 GB setiap penerbangan dan kira-kira 300 ribu penerbangan setiap hari. Oleh itu, Analisis Enjin yang digunakan untuk data tersebut dalam waktu nyata boleh digunakan untuk mendiagnosis masalah secara proaktif dan mengurangkan waktu henti yang tidak dirancang. Ini memerlukan persekitaran yang diedarkan untuk menyimpan sejumlah besar data membaca dan menulis rawak cepat untuk pemprosesan masa nyata. Di sini, HBase datang untuk menyelamatkan. Saya akan bercakap mengenai HBase Baca dan Tulis secara terperinci di blog saya seterusnya di Senibina HBase .

Seperti yang kita ketahui, HBase adalah pangkalan data NoSQL. Oleh itu, sebelum memahami lebih lanjut mengenai HBase, mari kita bincangkan terlebih dahulu mengenai pangkalan data NoSQL dan jenisnya.

Tutorial Apache HBase: Pangkalan Data NoSQL

NoSQL bermaksud Bukan SQL sahaja . Pangkalan data NoSQL dimodelkan dengan cara yang dapat mewakili data selain format tabel, pangkalan data hubungan unkile. Ini menggunakan format yang berbeza untuk mewakili data dalam pangkalan data dan dengan demikian, ada berbagai jenis pangkalan data NoSQL berdasarkan format perwakilannya. Sebilangan besar pangkalan data NoSQL memanfaatkan ketersediaan dan kepantasan berbanding ketekalan. Sekarang, mari kita maju dan memahami mengenai pelbagai jenis pangkalan data NoSQL dan format perwakilannya.

Kedai Nilai Utama:

Ia adalah pangkalan data tanpa skema yang mengandungi kunci dan nilai. Setiap kunci, menunjukkan nilai yang merupakan array byte, boleh berupa rentetan, BLOB, XML, dll. Mis. Lamborghini adalah kunci dan dapat menunjukkan nilai Gallardo, Aventador, Murciélago, Reventón, Diablo, Huracán, Veneno, Centenario dll.

Key-Value menyimpan pangkalan data: Aerospike, Couchbase, Dynamo, FairCom c-treeACE, FoundationDB, HyperDex, MemcacheDB, MUMPS, Pangkalan Data Oracle NoSQL, OrientDB, Redis, Riak, Berkeley DB.

Kes penggunaan

Kedai nilai kunci menangani saiz dengan baik dan pandai memproses aliran operasi baca / tulis yang berterusan dengan kependaman rendah. Ini menjadikan mereka sesuai untukPilihan pengguna dan kedai profil,Produk cadangan item terkini yang dilihat di laman web peruncit untuk mendorong cadangan produk pelanggan masa depan,Iklan yang membiasakan pelanggan membeli tabiat menghasilkan iklan disesuaikan, kupon, dll untuk setiap pelanggan dalam masa nyata.

Berorientasikan Dokumen :

Ia mengikuti pasangan nilai kunci yang sama, tetapi ia separa struktur seperti XML, JSON, BSON. Struktur ini dianggap sebagai dokumen.

Pangkalan data berdasarkan dokumen: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB.

Kes Penggunaan

Oleh kerana dokumen menyokong skema yang fleksibel, penulisan dan pembahagian cepat membaca menjadikannya sesuai untuk membuat pangkalan data pengguna dalam pelbagai perkhidmatan seperti twitter, laman web e-dagang dll.

Berorientasikan lajur:

Dalam pangkalan data ini, data disimpan dalam sel yang dikelompokkan dalam lajur dan bukannya baris. Lajur dikelompokkan secara logik ke dalam keluarga lajur yang boleh dibuat semasa definisi skema atau pada waktu runtime.

Jenis pangkalan data ini menyimpan semua sel yang sesuai dengan lajur sebagai kemasukan cakera berterusan, sehingga menjadikan akses dan pencarian lebih cepat.

Pangkalan Data Berasaskan Lajur: HBase, Accumulo, Cassandra, Druid, Vertica.

Kes Penggunaan

Ia menyokong penyimpanan yang besar dan membolehkan akses tulisan baca lebih cepat di atasnya. Ini menjadikan pangkalan data berorientasikan lajur sesuai untuk menyimpan tingkah laku pelanggan di laman web e-dagang, sistem kewangan seperti Google Finance dan data pasaran saham, peta Google dll.

Berorientasikan Graf:

Ini adalah gambaran grafik fleksibel yang sempurna, digunakan tidak seperti SQL. Jenis pangkalan data ini dengan mudah menyelesaikan masalah skalabiliti alamat kerana mengandungi tepi dan simpul yang dapat diperluas mengikut keperluan.

Pangkalan data berasaskan grafik: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog.

Kes penggunaan

Ini pada dasarnya digunakan dalam pengesanan Penipuan, enjin cadangan Masa nyata (dalam kebanyakan kes e-dagang), pengurusan data Master (MDM), operasi Rangkaian dan IT, Pengurusan identiti dan akses (IAM), dll.

HBase dan Cassandra adalah dua pangkalan data berorientasikan lajur yang terkenal. Jadi, sekarang membincangkannya ke tahap yang lebih tinggi, marilah kita membandingkan dan memahami perbezaan seni bina dan kerja antara HBase dan Cassandra.

Tutorial HBase: HBase VS Cassandra

  • HBase dimodelkan di BigTable (Google) sementara Cassandra berdasarkan DynamoDB (Amazon) yang pada mulanya dikembangkan oleh Facebook.
  • HBase memanfaatkan infrastruktur Hadoop (HDFS, ZooKeeper) sementara Cassandra berkembang secara berasingan tetapi anda boleh menggabungkan Hadoop dan Cassandra mengikut keperluan anda.
  • HBase mempunyai beberapa komponen yang berkomunikasi bersama seperti HBase HMaster, ZooKeeper, NameNode, Region Severs. Manakala Cassandra adalah jenis simpul tunggal, di mana semua nod sama dan melakukan semua fungsi. Mana-mana simpul boleh menjadi penyelaras yang menghilangkan satu Titik kegagalan.
  • HBase dioptimumkan untuk membaca dan menyokong penulisan tunggal, yang membawa kepada konsistensi yang ketat. HBase menyokong imbasan berdasarkan Range, yang menjadikan proses pengimbasan lebih cepat. Manakala Cassandra menyokong pembacaan baris tunggal yang mengekalkan konsistensi akhirnya.
  • Cassandra tidak menyokong imbasan baris berdasarkan jarak, yang memperlambat proses pengimbasan berbanding dengan HBase.
  • HBase menyokong partition yang diatur, di mana baris dari Column Family disimpan dalam urutan RowKey, sedangkan di Casandra memerintahkan partition adalah satu cabaran. Oleh kerana partisi RowKey proses pengimbasan lebih pantas di HBase berbanding dengan Cassandra.
  • HBase tidak menyokong pengimbangan beban baca, satu Pelayan Wilayah melayani permintaan baca dan replika hanya digunakan sekiranya berlaku kegagalan. Sementara Cassandra menyokong load balancing membaca dan dapat membaca data yang sama dari pelbagai nod. Ini boleh menjejaskan konsistensi.
  • Dalam CAP (Konsistensi, Ketersediaan & Partisi-Toleransi) teorema HBase mengekalkan Ketekalan dan Ketersediaan sementara Cassandra memfokuskan pada Ketersediaan dan Partisi-Toleransi.


Sekarang mari kita selami dengan mendalam dan fahami ciri Apache HBase yang menjadikannya begitu popular.

Tutorial HBase Apache: Ciri-ciri HBase

  • Atom membaca dan menulis: Pada peringkat berturut-turut, HBase menyediakan membaca dan menulis atom. Ini dapat dijelaskan kerana, semasa satu proses membaca atau menulis, semua proses lain dilarang melakukan operasi membaca atau menulis.
  • Membaca dan menulis secara konsisten: HBase memberikan bacaan dan penulisan yang konsisten kerana ciri di atas.
  • Skalabiliti linear dan modular: Oleh kerana set data diedarkan melalui HDFS, maka dapat disesuaikan secara linear di pelbagai nod, dan juga modular yang dapat diskalakan, kerana ia dibahagikan di pelbagai nod.
  • Pembahagian jadual automatik dan boleh dikonfigurasi: Jadual HBase diedarkan di seluruh kelompok dan kelompok ini diedarkan di seluruh wilayah. Kawasan dan kelompok ini berpecah, dan diedarkan semula seiring dengan bertambahnya data.
  • API Java yang mudah digunakan untuk akses pelanggan: Ini menyediakan Java API yang mudah digunakan untuk akses program.
  • Gerbang berjimat cermat dan perkhidmatan Web REST-ful: Ini juga menyokong Thrift dan REST API untuk front-end bukan Java.
  • Sekat Penyaring Cache dan Bloom: HBase menyokong Blok Cache dan Bloom Filter untuk pengoptimuman pertanyaan dengan jumlah yang tinggi.
  • Sokongan kegagalan automatik: HBase dengan HDFS menyediakan WAL (Write Ahead Log) di seluruh kelompok yang memberikan sokongan kegagalan automatik.
  • Kekunci baris disusun: Oleh kerana pencarian dilakukan pada pelbagai baris, HBase menyimpan baris baris dalam susunan leksikografi. Dengan menggunakan tombol baris dan cap waktu yang disusun ini, kami dapat membina permintaan yang dioptimumkan.

Sekarang teruskan dalam tutorial HBase ini, izinkan saya memberitahu anda apakah kes penggunaan dan senario di mana HBase dapat digunakan dan kemudian, saya akan membandingkan HDFS dan HBase.

Saya ingin menarik perhatian anda terhadap senario di mana HBase paling sesuai.

Tutorial HBase: Di mana kita boleh menggunakan HBase?

  • Kita harus menggunakan HBase di mana kita mempunyai set data yang besar (berjuta-juta atau berbilion atau baris dan lajur) dan kita memerlukan akses cepat, rawak dan masa nyata, membaca dan menulis data.
  • Kumpulan data diedarkan di pelbagai kelompok dan kami memerlukan skalabilitas yang tinggi untuk menangani data.
  • Data dikumpulkan dari pelbagai sumber data dan ia adalah data separa berstruktur atau tidak berstruktur atau gabungan semua. Ia dapat dikendalikan dengan mudah dengan HBase.
  • Anda mahu menyimpan data berorientasikan lajur.
  • Anda mempunyai banyak versi set data dan anda perlu menyimpan semuanya.

Sebelum saya pergi ke kajian kes Facebook messenger,izinkan saya memberitahu anda apa perbezaan antara HBase dan HDFS.

Tutorial HBase: HBase VS HDFS

HDFS adalah sistem fail diedarkan berasaskan Java yang membolehkan anda menyimpan data besar di beberapa nod dalam kluster Hadoop. Oleh itu, HDFS adalah sistem penyimpanan yang mendasari untuk menyimpan data di persekitaran yang diedarkan. HDFS adalah sistem fail, sedangkan HBase adalah pangkalan data (serupa dengan NTFS dan MySQL).

Oleh kerana Kedua-dua HDFS dan HBase menyimpan segala jenis data (iaitu terstruktur, semi-terstruktur dan tidak terstruktur) dalam lingkungan yang diedarkan, mari kita lihat perbezaan antara sistem fail HDFS dan HBase, pangkalan data NoSQL.

  • HBase menyediakan akses latensi rendah ke sejumlah kecil data dalam set data besar sementara HDFS menyediakan operasi latensi tinggi.
  • HBase menyokong membaca dan menulis secara rawak sementara HDFS menyokong WORM (Tulis sekali Baca Banyak atau Berkali-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 set data yang besar dalam persekitaran yang diedarkan dan memanfaatkan pemprosesan kumpulan pada data tersebut. Cth. ini akan membantu laman web e-dagang untuk menyimpan berjuta-juta data pelanggan dalam persekitaran yang diedarkan yang berkembang dalam jangka masa yang panjang (mungkin 4-5 tahun atau lebih). Kemudian memanfaatkan pemprosesan kumpulan data tersebut dan menganalisis tingkah laku, corak, keperluan pelanggan. Kemudian syarikat dapat mengetahui jenis produk, pembelian pelanggan dalam beberapa bulan. Ia membantu menyimpan data yang diarkibkan dan melaksanakan pemprosesan kumpulan di atasnya.

Walaupun HBase menyimpan data dengan cara berorientasikan lajur di mana setiap lajur disimpan bersama sehingga, pembacaan menjadi lebih cepat memanfaatkan pemprosesan masa nyata. Cth. dalam persekitaran e-dagang yang serupa, ia menyimpan berjuta-juta data produk. Oleh itu, jika anda mencari produk di antara berjuta-juta produk, ia mengoptimumkan proses permintaan dan carian, menghasilkan hasilnya dengan segera (atau anda boleh mengatakannya dalam masa nyata). Yang terperinci Penjelasan seni bina HBase , Saya akan membuat liputan di blog seterusnya.

Seperti yang kita ketahui HBase diedarkan melalui HDFS, jadi gabungan keduanya memberi kita peluang besar untuk menggunakan manfaat keduanya, dalam penyelesaian yang disesuaikan, seperti yang akan kita lihat dalam kajian kes messenger Facebook di bawah.

Tutorial HBase: Kajian Kes Facebook Messenger

Platform Pemesejan Facebook beralih dari Apache Cassandra ke HBase pada bulan November 2010.

Facebook Messenger menggabungkan Mesej, e-mel, sembang dan SMS ke dalam perbualan masa nyata. Facebook berusaha membina infrastruktur yang berskala dan kuat untuk menangani serangkaian perkhidmatan ini.

Pada masa itu infrastruktur pesanan menangani lebih dari 350 juta pengguna yang menghantar lebih dari 15 bilion mesej orang ke orang setiap bulan. Perkhidmatan sembang menyokong lebih dari 300 juta pengguna yang menghantar lebih dari 120 bilion mesej setiap bulan.

Dengan memantau penggunaannya, mereka mendapati bahawa, dua pola data umum muncul:

menukar rentetan tarikh ke tarikh
  • Kumpulan data temporal pendek yang cenderung tidak stabil
  • Kumpulan data yang terus berkembang yang jarang dapat diakses

Facebook ingin mencari penyelesaian penyimpanan untuk kedua-dua corak penggunaan ini dan mereka mula menyiasat untuk mencari pengganti infrastruktur Mesej yang ada.

Awal tahun 2008, mereka menggunakan pangkalan data sumber terbuka, iaitu Cassandra, yang merupakan gudang nilai-konsistensi akhirnya yang sudah dalam pengeluaran yang melayani lalu lintas untuk Pencarian Inbox. Pasukan mereka mempunyai pengetahuan yang besar dalam menggunakan dan mengelola pangkalan data MySQL, jadi menukar salah satu teknologi merupakan masalah serius bagi mereka.

Mereka menghabiskan beberapa minggu untuk menguji kerangka kerja yang berbeza, untuk menilai kelompok MySQL, Apache Cassandra, Apache HBase dan sistem lain. Mereka akhirnya memilih HBase.

Oleh kerana MySQL gagal menangani set data yang besar dengan cekap, ketika indeks dan set data bertambah besar, kinerja mengalami masalah. Mereka mendapati Cassandra tidak dapat menangani corak sukar untuk mendamaikan infrastruktur Mesej baru mereka.

Masalah utama adalah:

  • Menyimpan sejumlah besar data yang terus berkembang dari pelbagai perkhidmatan Facebook.
  • Memerlukan Pangkalan Data yang dapat memanfaatkan pemprosesan yang tinggi di atasnya.
  • Prestasi tinggi diperlukan untuk memenuhi berjuta-juta permintaan.
  • Mengekalkan konsistensi dalam penyimpanan dan prestasi.

Gambar: Cabaran yang dihadapi oleh utusan Facebook

Untuk semua masalah ini, Facebook menemui jalan keluar iaitu HBase. Facebook menggunakan HBase untuk melayani pemesejan Facebook, sembang, e-mel, dan lain-lain kerana pelbagai ciri.

HBase dilengkapi dengan skalabilitas dan prestasi yang sangat baik untuk beban kerja ini dengan model konsistensi yang lebih sederhana daripada Cassandra. Walaupun mereka mendapati HBase adalah yang paling sesuai dari segi keperluannya seperti pengimbangan beban automatik dan failover, sokongan pemampatan, beberapa pecahan per pelayan, dll.

HDFS, yang merupakan sistem fail yang mendasari yang digunakan oleh HBase juga memberikan mereka beberapa fitur yang diperlukan seperti checksum end-to-end, replikasi dan pengimbangan semula beban automatik.

Gambar: HBase sebagai penyelesaian untuk pemesejan Facebook

Ketika mereka mengadopsi HBase, mereka juga fokus untuk memberikan hasilnya kembali ke HBase itu sendiri dan mulai bekerja sama dengan masyarakat Apache.

Oleh kerana mesej menerima data dari sumber yang berbeza seperti SMS, sembang dan e-mel, mereka menulis pelayan aplikasi untuk menangani semua pengambilan keputusan untuk pesan pengguna. Ia bersambung dengan sebilangan besar perkhidmatan lain. Lampiran disimpan di Haystack (yang berfungsi di HBase). Mereka juga menulis perkhidmatan penemuan pengguna di atas Apache ZooKeeper yang bercakap dengan perkhidmatan infrastruktur lain untuk hubungan rakan, pengesahan akaun e-mel, keputusan penghantaran dan keputusan privasi.

Pasukan Facebook menghabiskan banyak masa untuk mengesahkan bahawa setiap perkhidmatan ini kuat, boleh dipercayai dan memberikan prestasi yang baik untuk menangani sistem pesanan masa nyata.

Saya harap blog tutorial HBase ini bermaklumat dan anda menyukainya. Dalam blog ini, anda harus mengetahui asas-asas HBase dan ciri-cirinya.Di blog saya seterusnya , Saya akan menerangkan seni bina HBase dan kerja HBase yang menjadikannya popular untuk membaca / menulis cepat dan rawak.

Sekarang setelah anda memahami asas-asas HBase, lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Kursus Latihan Pensijilan Hadoop Data Besar Edureka membantu pelajar menjadi pakar dalam bidang HDFS, Benang, MapReduce, Babi, Hive, HBase, Oozie, Flume dan Sqoop menggunakan kes penggunaan masa nyata di domain Runcit, Media Sosial, Penerbangan, Pelancongan, Kewangan.

Ada soalan untuk kami? Sila sebutkan di bahagian komen dan kami akan menghubungi anda.