Blog ini berisi tentang Pengodean Penghapusan HDFS. Di blog ini kita akan membahas konsep Erasure Coding di Hadoop , masalah skema replikasi lama. Dua algoritma untuk pengkodean penghapusan Hadoop seperti Algoritma XOR, Algoritma Reed-Solomon juga dibahas di blog ini.
Akhirnya kita akan melihat arsitektur dan keuntungan dari pengkodean penghapusan di Hadoop HDFS.
Masalah dengan Replikasi Skema Lama
Pengodean Penghapusan HDFS adalah fitur baru yang diperkenalkan untuk mengurangi overhead penyimpanan sekitar 50% dibandingkan dengan replikasi 3x. Hadoop HDFS mereplikasi setiap blok 3 kali untuk berbagai tujuan. Ini adalah bentuk redundansi yang sangat sederhana untuk melindungi dari kegagalan datanode.
Seiring dengan pro ia memiliki berbagai kontra yang sangat mahal. 3 x replikasi memiliki overhead 200% di ruang penyimpanan dan sumber daya lainnya. Kumpulan data dengan aktivitas I/O rendah, replika tambahan jarang diakses selama operasi normal tetapi masih menggunakan sumber daya lain.
Inilah alasan mengapa pengkodean Hadoop Erasure muncul. Ini memberikan tingkat toleransi kesalahan yang sama dengan penyimpanan ruang yang lebih sedikit dan overhead penyimpanan 50%.
Saat membandingkan skema penyimpanan yang berbeda, pertimbangan penting adalah:
- Daya tahan data (jumlah toleransi kesalahan secara bersamaan)
- Efisiensi penyimpanan
Jadi Dalam replikasi N-way, ada toleransi kesalahan N-1 dengan efisiensi penyimpanan 1/n.
Apa itu Pengodean Penghapusan HDFS di Hadoop?
Pengodean Penghapusan HDFS menggunakan RAID . RAID mengimplementasikan EC menggunakan stripping. Stripping secara logis menyimpan data dalam bentuk blok. Kemudian simpan blok ini pada disk yang berbeda. Ini menghitung paritas untuk setiap blok dan toko. Ini dikodekan. Melalui paritas, ia memulihkan kesalahan.
Untuk toleransi kesalahan, EC memperluas pesan dengan data yang berlebihan. Pengkodean HDFS Erasure akan beroperasi pada sel data berukuran seragam. codec mengambil sejumlah sel data sebagai input. Dan kemudian menghasilkan sel paritas sebagai output.
Seluruh proses ini disebut sebagai Encoding. Paritas dan sel data bersama-sama disebut sebagai grup pengkodean penghapusan. Proses di mana sel data yang hilang direkonstruksi di atas sel yang tersisa dikenal sebagai Decoding.
Dua algoritme yang tersedia untuk Pengodean Penghapusan HDFS adalah sebagai berikut:
a) Algoritma XOR
Ini adalah implementasi sederhana dari pengkodean Hadoop Erasure.
Mari kita asumsikan sel data X dan Y dan Z adalah sel data, maka sel paritas adalah XOR dari ketiga sel data ini x y z jadi selama operasi XOR hanya satu bit paritas yang dihasilkan dan jika ada satu bit yang hilang, itu dapat dipulihkan oleh sel data yang tersisa dan bit paritas.
Ini sangat terbatas karena menghasilkan 1 bit paritas sehingga operasi XOR hanya dapat mentolerir 1 kegagalan dengan ukuran grup n.
“Dalam operasi XOR toleransi kesalahan 1 dan efisiensi penyimpanan n-1/n ketika ukuran grup n. ”
b) Algoritma Reed-Solomon
Reed-Solomon membahas batasan operasi XOR. Ini menggunakan aljabar linier untuk menghasilkan beberapa sel paritas. RS menggunakan dua parameter k dan m, k adalah jumlah sel data dan m adalah jumlah sel paritas.
RS bekerja dengan mengalikan k sel data dengan Matriks Generator (G), untuk menghasilkan kata sandi yang diperluas dengan k sel data dan m sel paritas. Kegagalan penyimpanan dapat dipulihkan dengan mengalikan kebalikan dari matriks generator dengan codeword yang diperluas selama k dari k+m sel tersedia.
“Dengan Reed, toleransi kesalahan Solomon hingga m sel dan efisiensi penyimpanan k/k+m di mana k adalah sel data dan m adalah sel paritas.”
Keputusan Desain dan Arsitektur
Striping EC memiliki beberapa keunggulan:
- Stripping memungkinkan EC online (segera menulis data dalam format EC), menghindari fase konversi dan segera menghemat ruang penyimpanan.
- Ini mendistribusikan file kecil ke beberapa Datanodes. Ini menghilangkan bundel beberapa file ke dalam grup pengkodean tunggal. Dengan demikian, ini menyederhanakan operasi file seperti penghapusan dan migrasi antara ruang nama federasi.
- Untuk mendukung file kecil dengan lebih baik, EC mendukung pengupasan. Di masa mendatang, HDFS juga akan mendukung tata letak EC yang berdekatan.
EC menambahkan banyak komponen baru yaitu:
- Ekstensi NameNode (ECManager ) – File HDFS Stripe secara logis terdiri dari grup blok. Masing-masing berisi sejumlah blok internal. Untuk mengurangi konsumsi memori Namenode dari blok tambahan ini, ia memperkenalkan protokol penamaan blok hierarkis baru. EC menyimpulkan ID grup blok dari ID blok internal mana pun. Ini memungkinkan pengelolaan di tingkat grup blok, bukan di blok.
- Ekstensi Klien (Klien EC) – Klien dapat melakukan operasi baca dan tulis pada beberapa blok internal dalam grup blok secara paralel.
- Ekstensi DataNode (ECWorker)- DataNode menjalankan tugas pekerja EC tambahan untuk pemulihan blok kode penghapusan yang gagal. Jadi, NameNode mendeteksi blok EC yang gagal, namenode memberikan instruksi pemulihan ke datanodes. Kemudian ia melewati tugas pemulihan sebagai respons detak jantung.
Manfaat Pengodean Penghapusan
- Ketersediaan data pada kapasitas yang lebih rendah: HDFS Kode penghapusan memungkinkan ketersediaan data pada kapasitas yang lebih rendah. Awalnya, replika blok dalam tiga replika. Jadi, ruang penyimpanan tiga replika itu besar. Tapi sekarang dalam pengkodean penghapusan, simpan data besar sebagai bit paritas, jadi penyimpanannya mengurangi ruang.
- Kinerja: Karena EC menyimpan data sebagai paritas, bukan 3 replika, sehingga memberikan kinerja yang lebih baik.
- Pemulihan cepat: Ia menemukan dan memulihkan kesalahan blok HDFS baik secara aktif (di latar belakang) dan secara pasif (di jalur baca).
Kesimpulan
Sebagai kesimpulan, kita dapat mengatakan bahwa, pengkodean Penghapusan HDFS telah mengurangi overhead penyimpanan sebesar 50%. EC mengurangi overhead karena bit paritas. Oleh karena itu, fitur HDFS . ini memberdayakan fungsionalitas Apache Hadoop.
Jika Anda memiliki pertanyaan atau saran terkait Pengodean Penghapusan di HDFS, silakan beri komentar pada kami di bagian yang diberikan di bawah ini.