Hadoop Distributed File System (HDFS) adalah sistem file terdistribusi dalam kerangka kerja Hadoop. HDFS memiliki toleransi kesalahan yang tinggi, menyediakan akses data dengan throughput tinggi, dan mampu memproses data dalam ukuran terabyte hingga petabyte. Sistem ini mengurangi biaya penyimpanan data secara signifikan. HDFS cocok digunakan dalam skenario di mana data berskala besar perlu dibaca dan ditulis secara terdistribusi, terutama ketika jumlah operasi baca lebih dominan daripada operasi tulis.
Manfaat
HDFS dalam kluster E-MapReduce (EMR) menawarkan manfaat berikut:
Toleransi kesalahan tinggi dan skalabilitas yang baik.
Menyediakan antarmuka perintah shell.
Menyediakan antarmuka web UI untuk pengelolaan komponen secara visual.
Mengizinkan pengelolaan izin file mirip dengan Linux.
Memiliki kesadaran lokasi dengan alokasi ruang penyimpanan berdasarkan lokasi node komputasi.
Menyeimbangkan distribusi data di antara DataNodes.
Mendukung operasi restart dan upgrade bergulir.
Arsitektur
HDFS menggunakan arsitektur primer/sekunder. Dalam kluster EMR, HDFS terdiri dari satu NameNode dan beberapa DataNodes.
NameNode berada pada Node master kluster EMR dan bertanggung jawab untuk mengelola metadata file serta berinteraksi dengan klien. DataNode ditempatkan pada setiap node inti kluster EMR dan digunakan untuk mengelola file yang disimpan di node tersebut. Setiap file yang diunggah ke HDFS dibagi menjadi satu atau lebih blok data. Blok data ini didistribusikan ke berbagai DataNodes sesuai dengan kebijakan cadangan data kluster. Informasi lokasi blok data dikelola secara terpusat oleh NameNode.
Istilah
Item | Deskripsi |
NameNode | NameNode mengelola namespace sistem file, memelihara struktur direktori dan metadata semua file dalam pohon, serta mencatat pemetaan antara setiap blok data dan file tempat blok data tersebut berada. Semua informasi ini dipersistensikan ke file FsImage dan EditLog pada disk lokal. |
DataNode | DataNodes menyimpan file. DataNodes menyimpan atau menyediakan blok data berdasarkan instruksi dari NameNode atau klien, dan melaporkan informasi tentang blok data ke NameNode secara berkala. |
klien | Anda dapat menggunakan klien untuk mengakses sistem file dan berkomunikasi dengan NameNode dan DataNodes. Klien berfungsi sebagai antarmuka sistem file yang mirip dengan POSIX. |
blok | Dalam HDFS, file dibagi secara merata menjadi blok data. Setiap blok data berukuran 128 MB dan blok data tersebut dapat disimpan pada DataNodes yang berbeda. HDFS dapat menyimpan file tunggal yang ukurannya bahkan melebihi kapasitas disk. Secara default, tiga replika disimpan untuk setiap blok. Jika node inti dari kluster EMR menggunakan disk cloud, dua replika disimpan untuk setiap blok. Replika tersebut disimpan pada DataNodes yang berbeda. Dengan cara ini, keamanan data ditingkatkan. Selain itu, pekerjaan terdistribusi dapat menggunakan data lokal untuk komputasi, yang mengurangi transfer data. |
Secondary NameNode | Untuk kluster non-HA, proses Secondary NameNode dimulai secara otomatis. Proses Secondary NameNode bertujuan untuk mengonsumsi file EditLog dan menggabungkan file FsImage dan EditLog secara berkala untuk menghasilkan file FsImage baru. Hal ini mengurangi beban pada NameNode. |
ketersediaan tinggi | Untuk kluster dengan ketersediaan tinggi (HA), dua NameNode dimulai secara otomatis. NameNode aktif dan NameNode standby memiliki peran yang berbeda. NameNode aktif digunakan untuk menangani permintaan dari DataNodes dan klien. NameNode standby berfungsi sebagai cadangan dari NameNode aktif dan menyimpan data yang sama dengan NameNode aktif. Jika terjadi pengecualian pada NameNode aktif, NameNode standby digunakan untuk menangani permintaan dari DataNodes dan klien. |