Hadoop Distributed File System - HDFS

Rangkuman dari HDFS

Nama : Muhammad Daffa Abiyyu Rahman

NRP : 6022211015


HDFS, singkatan dari Hadoop Distributed File System, adalah sebuah desain DFS yang ditujukan pada hardware komoditas dan memiliki banyak keserupaan dengan DFS lainnya. Tentunya, ada beberapa perbedaan seperti fault tolerance yang tinggi dan ditujukan pada hardware dengan biaya rendah. HDFS adalah bagian dari proyek Apache Hadoop Core dan awalnya dibuat untuk keperluan mesin pencari web bernama Apache Nutch.


HDFS dibuat dengan beberapa tujuan dan asumsi sebagai berikut:

1. Selalu beranggapan bahwasanya kegagalan hardware adalah normal, dan selalu memprioritaskan fault tolerance untuk menyesuaikan dengan bagian yang gagal.

2. Menggunakan stream untuk mengakses data, dan mengurangi batasan POSIX di beberapa tempat untuk memaksimalkan data yang diproses.

3. Selalu berasumsi bahwa himpunan data yang diproses berskala sangat besar dan sangat banyak, berukuran GB hingga TB dan satu instance bisa memproses jutaan file.

4. Menggunakan simple coherence model yang berdasarkan konsep WORM (Write-Once-Read-Many).

5. Menggerakkan proses komputasi, bukan data yang akan diproses.

6. Bersifat portabel, sehingga bisa dipindahkan dan digunakan oleh beberapa sistem yang berbeda.


Arsitektur yang digunakan dalam HDFS adalah master/slave. Untuk master sendiri menggunakan NameNode, sedangkan slave dalam arsitektur ini dinamakan DataNode. HDFS dibangun dengan bahasa Java dan memiliki Java API serta C wrapper. Penggunaan NameNode tunggal menyederhanakan arsitektur dimana NameNode bertugas menjadi arbitrator dan penyimpanan seluruh metadata di HDFS.


Namespace sistem disimpan di NameNode. Secara garis besar, Namespace yang digunakan di HDFS serupa dengan DFS tradisional. Fasilitas juga serupa dengan DFS lain seperti read, write, open, dan close. Satu hal yang menarik di HDFS adalah kemampuan replication dimana HDFS bisa menentukan berapa salinan dari sebuah file disimpan dalam sistem.


HDFS di desain dengan mempertimbangkan cluster data dengan ukuran besar. Dalam hal ini, HDFS membagi data-data ini menjadi blok dalam bentuk sequential. Blok-blok ini dapat direplikasikan untuk keperluan fault tolerance. NameNode dapat mengetahui lokasi yang bisa digunakan untuk keperluan replikasi melalui heartbeat dan block report, dimana yang pertama menginfokan apakah DataNode berfungsi normal atau tidak, sedangkan block report merincikan isi dari DataNode.


Untuk komunikasi, HDFS menggunakan TCP/IP. Klien terhubung ke port TCP milik NameNode, dan berkomunikasi dengan NameNode lewat ClientProtocol. DataNode menggunakan DataNodeProtocol untuk berkomunikasi dengan NameNode. Kedua protokol itu disimpan dalam bentuk RPC (Remote Procedure Call). NameNode tidak pernah membuat RPC dan hanya merespons ke permintaan RPC.


Untuk keselamatan sistem terhadap kegagalan, 5 hal berikut menjadi perhatian HDFS:

1. Kegagalan Disket Data, Heartbeat, dan Re-Replication

2. Cluster Rebalancing

3. Metadata Disk Failure

4. Integritas Data

5. Snapshot

Komentar

Postingan populer dari blog ini

[HOAX] Pesan Juru Kunci

Daftar Enzim Pencernaan, Letak dan Fungsi

Typeform : Membuat Formulir dengan Mudah!