Hadoop Distributed File System

Pada artikel sebelumnya saya telah mengulas sedikit tentang pengelolaan big data dengan Hadoop. Di kesempatan kali ini saya akan mengupas salah satu “daleman” nya Hadoop, yaitu HDFS atau Hadoop Distributed File System. Cekidot


HDFS? Apa yaaa??

Hadoop Distributed File System (HDFS) kalau diartikan secara harafiah bisa berarti Sistem File Terdistribusi Hadoop. Walaupun dinamakan sistem file atau file system, HDFS ini tidak sejajar dengan jenis file system dari sistem operasi misalnya NTFS, FAT32, dan sebagainya. HDFS merupakan sistem penyimpanan terdistribusi, yang melakukan proses pemecahan file besar menjadi bagian-bagian lebih kecil kemudian didistribusikan ke cluster-cluster dari komputer. Cluster ini biasanya terdiri dari banyak node atau komputer/server. Setiap node di dalam cluster ini harus terinstal Hadoop untuk bisa berfungsi. Sebagai distributed file system, HDFS berguna untuk menangani data berukuran raksasa yang disimpan tersebar dalam cluster-nya.

HDFS merupakan sistem penyimpanan terdistribusi, yang melakukan proses pemecahan file besar menjadi bagian-bagian lebih kecil kemudian didistribusikan ke cluster-cluster dari komputer

Komponen dan Metode Penyimpanan pada HDFS

Sebagai distributed file system, HDFS menyimpan suatu data dengan cara membaginya menjadi potongan-potongan data yang berukuran 64 MB, dan potongan-potongan data ini kemudian disimpan tersebar dalam komputer-komputer yang membentuk clusternya. Potongan-potongan data tersebut dalam HDFS disebut block, dan ukurannya tidak terpaku harus 64 MB. Ukuran block dapat diatur sesuai kebutuhan.

HDFS memiliki komponen-komponen utama berupa NameNode dan DataNode. NameNode adalah sebuah komputer yang bertindak sebagai master, sedangkan DataNode adalah komputer-komputer dalam Hadoop Cluster yang bertugas sebagai slaves atau anak buah. NameNode bertanggungjawab menyimpan informasi tentang penempatan block-block data dalam Hadoop Cluster. Ia bertanggungjawab mengorganisir dan mengontrol block-block data yang disimpan tersebar dalam komputer-komputer yang menyusun Hadoop Cluster. Sedangkan DataNode bertugas menyimpan block-block data yang dialamatkan kepadanya, dan secara berkala melaporkan kondisinya kepada NameNode.

Setiap data atau file yang disimpan di HDFS selalu memiliki lebih dari satu copy. Ini disebut Refplication Factor (RF). Secara default RF adalah 3. Artinya satu file disimpan di 3 data node sehingga jika ada satu DataNode yang rusak, maka DataNode yang lain bisa memberikan filenya. Setiap 3 detik sekali, DataNode mengirim sinyal (heartbeat) ke NameNode untuk menunjukkan bahwa DataNode masih aktif. Kalau dalam 10 menit NameNode tidak menerima heartbeat dari DataNode, maka DataNode tersebut dianggap rusak atau tidak berfungsi sehingga setiap request read/write dialihkan ke node lain. Berdasarkan Heartbeat ini NameNode dapat mengetahui dan menguasai kondisi cluster secara keseluruhan. Sebagai balasan atas Heartbeat dari DataNode, NameNode akan mengirimkan perintah kepada DataNode.

HDFS memiliki komponen-komponen utama berupa NameNode dan DataNode.

Secara umum begini penyimpanan data di NameNode dan DataNode.

Penyimpanan Data Pada HDFS

Dari penjelasan di atas dapat disimpulkan bahwa :

  1. HDFS memiliki kemampuan pengolahan data set yang besar. Hal ini karena ketika file diproses melalui HDFS, file tersebut dipecah kedalam bagian-bagian lebih kecil dan kemudian bagian kecil dari file tersebut di-distribusikan ke beberapa node dalam sistem kluster, sehingga memungkinkan pemrosesan secara pararel.
  2. HDFS memiliki sifat fault-tolerant. Maksudnya ketika terjadi kesalahan (fault) HDFS mampu mentoleransi dan menghandle kesalahan tersebut. Dengan file dipecah-pecah dan terdistribusi copy-annya ke beberapa node maka bagian file yang ada pada Node mati/rusak bisa ditemukan di node lainnya sehingga pengolahan yang membutuhkan bagian file tersebut tetap bisa berjalan.

Demikianlah sedikit ulasan dari saya mengenai HDFS, sampai jumpa di tulisan selanjutnya. Semoga bermanfaat.