HDFS - Berkenalan Dengan Komponen Penting Untuk Big Data

berkenalan-dengan-hdfs

HDFS atau Hadoop Distributed File System memiliki peran yang sangat penting dalam era  di mana volume data terus meningkat secara eksponensial. Sebagai salah satu komponen inti dari ekosistem Hadoop, HDFS telah menjadi fondasi yang penting bagi organisasi yang berurusan dengan data besar (big data). Dalam artikel ini, kita akan membahas secara singkat tentang konsep, dan fitur dari Hadoop Distributed File System (HDFS).

 

Apa itu HDFS?

HDFS (Hadoop Distributed File System) adalah sistem penyimpanan terdistribusi yang handal, scalable, dan efisien untuk menangani volume data yang sangat besar (big data). Sistem ini didesain untuk berjalan di atas sejumlah besar server yang terhubung dalam sebuah klaster, memungkinkan data untuk didistribusikan dan disimpan di seluruh node dalam klaster tersebut. Dengan penyimpanan terdistribusi dalam klaster, sumber daya penyimpanan gabungan dapat tumbuh secara linier seiring dengan permintaan namun tetap ekonomis pada setiap jumlah penyimpanan.

HDFS merupakan file sistem terdistribusi yang disediakan oleh Hadoop. HDFS menyediakan penyimpanan data yang handal dan scalable. Pada awalnya HDFS dirancang untuk penggunaan server komoditas pada lingkungan klaster. HDFS telah terbukti mampu melakukan penyimpanan hingga 200 PB dalam satu klaster yang terdiri dari 4500 server, yang mendukung hampir satu miliar file dan blok. Data yang tersimpan dalam HDFS memungkinkan Hadoop maupun framework pemrosesan data lainnya melakukan pemrosesan secara paralel dan terdistribusi.

 

Bagaimana Cara Kerja HDFS?

HDFS memiliki arsitektur master and slave atau master dan worker, dengan cara kerja sebagai berikut:

  1. Master pada HDFS disebut dengan name node, dan slave atau worker disebut data mode.
  2. Name node hanya menyimpan metadata atau informasi mengenai file, sedangkan data aktual (data fisik) disimpan dalam data node.
  3. Name node dan data node adalah proses, dan bukan merupakan perangkat keras super mewah.
  4. Data node menyimpan data mengikuti sistem file OS yang digunakan, dan biasanya menggunakan OS berbasis Linux.
  5. HDFS client digunakan untuk berinteraksi dengan HDFS. HDFS client berkomunikasi dengan name node untuk memperoleh informasi/metadata file yang akan diakses, kemudian menggunakan informasi tersebut untuk berkomunikasi dengan data node untuk membaca/menulis data. Tidak ada proses data I/O yang terjadi pada name node.
  6. HDFS client tidak pernah mengirim data ke name node sehingga name node tidak pernah menjadi hambatan/bottleneck dalam proses data I/O pada kluster.
  7. Ketika HDFS client berada dalam satu mesin dengan data node, terdapat fitur "short-circuit" yang dapat dimanfaatkan. Fitur ini memungkinkan client membaca file dari HDFS secara langsung, sehingga mempercepat proses secara signifikan.
  8. Sederhananya, HDFS client bisa dianggap sebagai web client dan HDFS secara keseluruhan adalah layanan web yang memiliki tugas yang telah ditentukan sebelumnya untuk GET, PUT, COPYFROMLOCAL dll.

 

arsitektur-hdfs
Gambar - Arsitektur HDFS

 

Bagaimana HDFS Menyimpan File?

HDFS (Hadoop Distributed File System) menyimpan file secara terdistribusi untuk meningkatkan keandalan dan kinerja sistem. Berikut adalah cara HDFS menyimpan file:

  1. Ketika sebuah file diunggah ke HDFS, file tersebut dipecah menjadi bagian-bagian yang lebih kecil yang disebut blok.
  2. Ukuran blok default dalam HDFS adalah 128 MB, tetapi ukuran ini dapat dikonfigurasi sesuai kebutuhan.
  3. Misalnya kita memiliki file berukuran 300 MB, maka file tersebut akan dipecah menjadi 3 blok, yaitu blok 1 sebesar 128 MB, blok kedua sebesar 128 MB, dan blok ketiga atau sisanya yaitu 44 MB.
  4. Blok-blok tersebut akan didistribusikan dalam data node yang berbeda, misal blok 1 disimpan dalam data node 1, blok 2 dalam data node 2, dan blok 3 dalam data node 4.

 

hdfs-block-distribution
Gambar - Distribusi Block Pada HDFS

 

Replikasi Pada HDFS

Hadoop awalnya didesain untuk menggunakan server komoditas, yang memiliki kemungkinan kegagalan dan kerusakan hardware cukup tinggi. Untuk mengatasi masalah tersebut maka HDFS memiliki fitur replikasi (salinan), dengan cara kerja sebagai berikut:

  1. Setiap blok akan direplikasi.
  2. Secara default, blok tersebut akan direplikasi menjadi 3. Jumlah replikasi ini dapat dikonfigurasi sesuai kebutuhan.
  3. Setiap replikasi tersebut, akan didistribusikan dalam data node yang berbeda.
  4. Jika sebuah data node mengalami kegagalan atau kerusakan, maka data yang ada dalam data node tersebut tidak hilang, karena memiliki salinan pada data node yang lain.
  5. Fitur rack awareness. HDFS memperhatikan penempatan blok data terhadap rak fisik yang dalam cluster. Hal ini dilakukan untuk mengoptimalkan ketersediaan data dan kinerja, dengan memastikan bahwa replika dari sebuah blok data disimpan di berbagai rack yang berbeda dalam cluster. Dengan demikian, jika satu rack mengalami kegagalan, data masih tersedia dari replika yang ada di rack lainnya.

 

hdfs-block-replication
Gambar - Replikasi Block Pada HDFS

 

Wrapping Up

Dengan demikian, dapat disimpulkan bahwa Hadoop Distributed File System (HDFS) adalah fondasi yang kuat untuk penyimpanan dan pengelolaan data besar (big data). Melalui pendekatan terdistribusi dan replikasi data, HDFS memberikan keandalan tinggi, ketersediaan yang tak terputus, serta kinerja yang optimal untuk aplikasi dan analisis data skala besar. Dengan terus berkembangnya kebutuhan akan pemrosesan dan analisis data, HDFS tetap menjadi pilihan yang unggul bagi organisasi yang ingin memanfaatkan potensi data mereka secara maksimal.

 

Artikel lainnya:
Hadoop - Mengenal Perintah HDFS