HBase
 sql >> Teknologi Basis Data >  >> NoSQL >> HBase

Pengantar Cache Terdistribusi di Hadoop

Dalam tutorial ini kami akan memberi Anda deskripsi mendetail tentang Cache Terdistribusi di Hadoop . Pertama-tama kita akan memahami secara singkat apa itu Hadoop, kemudian kita akan melihat apa itu Cache Terdistribusi di Hadoop.

Kami juga akan membahas cara kerja dan penerapan Hadoop Distributed Cache. Akhirnya di blog ini kita juga akan melihat kelebihan dan kekurangan dari caching terdistribusi di Hadoop.

Pengantar Hadoop

Ini adalah mekanisme yang disediakan kerangka kerja MapReduce untuk menyimpan file yang dibutuhkan oleh aplikasi. Itu dapat menyimpan file seperti file teks/data hanya-baca, dan jenis yang lebih kompleks seperti arsip, file jar, dll.

Sebelum kita mulai dengan Cache Terdistribusi, mari kita bahas dulu apa itu Hadoop?

Hadoop adalah open-source, kerangka pemrograman berbasis Java. Ini mendukung pemrosesan dan penyimpanan kumpulan data yang sangat besar dalam lingkungan terdistribusi. Hadoop mengikuti topologi Master-Slave.

Master adalah NameNode dan Slave adalah DataNode. Datanode menyimpan data aktual di HDFS . Dan itu melakukan operasi baca dan tulis sesuai permintaan untuk klien. Namenode menyimpan meta-data.

Di Apache Hadoop, potongan data, diproses secara paralel di antara Datanodes, menggunakan program yang ditulis oleh pengguna. Jika kita ingin mengakses beberapa file dari semua Datanodes, maka kita akan memasukkan file tersebut ke dalam cache terdistribusi.

Apa itu Cache Terdistribusi di Hadoop?

Tembolok Terdistribusi di Hadoop adalah fasilitas yang disediakan oleh framework MapReduce. Cache Terdistribusi dapat menyimpan file ketika dibutuhkan oleh aplikasi. Itu dapat menyimpan file teks hanya baca, arsip, file jar, dll.

Setelah kami meng-cache file untuk pekerjaan kami, Apache Hadoop akan membuatnya tersedia di setiap datanode tempat tugas map/reduce sedang berjalan. Dengan demikian, kita dapat mengakses file dari semua datanode dalam tugas MapReduce kita.

Ukuran Cache Terdistribusi

Secara default, ukuran cache terdistribusi adalah 10 GB. Jika kita ingin menyesuaikan ukuran cache yang didistribusikan, kita dapat menyesuaikan dengan menggunakan lokal .tembolok .ukuran.

Implementasi

Aplikasi yang akan menggunakan cache terdistribusi untuk mendistribusikan file:

  • Sebaiknya pastikan dulu bahwa file tersebut tersedia.
  • Setelah itu, pastikan juga bahwa file tersebut dapat diakses melalui URL. URL dapat berupa hdfs:// atau https://.

Setelah validasi di atas, jika file ada di url yang disebutkan. Pengguna Hadoop menyebutkannya sebagai file cache ke cache yang didistribusikan. Tugas Hadoop MapReduce akan menyalin file cache di semua node sebelum memulai tugas di node tersebut.

Ikuti proses di bawah ini:

a) Salin file yang diperlukan ke HDFS:

$ hdfs dfs-put/user/dataflair/lib/jar_file.jar

b) Siapkan JobConf aplikasi:

DistributedCache.addFileToClasspath(Path baru (“/user/dataflair/lib/jar-file.jar”), conf).

c) Tambahkan di kelas Driver.

Keuntungan Cache Terdistribusi

  • Satu titik kegagalan- Karena cache terdistribusi berjalan di banyak node. Oleh karena itu, kegagalan satu node tidak mengakibatkan kegagalan total cache.
  • Konsistensi Data- Ini melacak cap waktu modifikasi file cache. Kemudian, memberitahukan bahwa file tidak boleh berubah sampai pekerjaan dijalankan. Menggunakan algoritma hashing, mesin cache selalu dapat menentukan di node mana nilai kunci tertentu berada. Seperti yang kita ketahui, bahwa selalu ada satu status dari cluster cache, sehingga tidak pernah tidak konsisten.
  • Menyimpan data yang kompleks – Ini mendistribusikan file teks sederhana dan hanya-baca. Ini juga menyimpan jenis kompleks seperti stoples, arsip. Pencapaian ini kemudian tidak diarsipkan di node slave.

Kerugian Cache Terdistribusi

Cache Terdistribusi di Hadoop memiliki overhead yang akan membuatnya lebih lambat daripada cache dalam proses:

a) Serialisasi objek – Itu harus membuat serial objek. Tetapi mekanisme serialisasi memiliki dua masalah utama:

  • Sangat besar – Serialisasi menyimpan nama kelas lengkap, cluster, dan detail perakitan. Itu juga menyimpan referensi ke instance lain dalam variabel anggota. Semua ini membuat serialisasi menjadi sangat besar.
  • Sangat lambat – Serialisasi menggunakan refleksi untuk memeriksa jenis informasi saat runtime. Refleksi adalah proses yang sangat lambat dibandingkan dengan kode yang telah dikompilasi sebelumnya.

Kesimpulan

Sebagai kesimpulan untuk cache Terdistribusi, kita dapat mengatakan bahwa, itu adalah fasilitas yang disediakan oleh MapReduce. Ini menyimpan file saat dibutuhkan oleh aplikasi. Itu dapat menyimpan file teks hanya baca, arsip, file jar, dll.

Secara default, ukuran cache terdistribusi adalah 10 GB. Jika Anda menemukan blog ini, atau Anda memiliki pertanyaan terkait Cache Terdistribusi di Hadoop, jangan ragu untuk berbagi dengan kami.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Panduan untuk Menggunakan Port Apache HBase

  2. Apa yang Harus dan Tidak Boleh Dilakukan Apache HBase

  3. Kesadaran Rak di Hadoop dan Keuntungannya

  4. Pengodean Penghapusan HDFS dalam Hadoop Data Besar

  5. Serialisasi Pesan Kuat di Apache Kafka Menggunakan Apache Avro, Bagian 1