HDFS: Berawal dari Google untuk Big Data
Segala
sesuatu mulai dari definisi
HDFS adalah singkatan dari Hadoop
Distributed File System. Kalau diterjemahkan mentah-mentah, maka HDFS adalah
Sistem File Terdistribusi Hadoop. Hadoop adalah salah satu proyek open source
milik Apache. Jadi HDFS adalah sistem file terdistribusi yang dikembangkan oleh
Apache dalam proyeknya yang bernama Hadoop. Apache mengembangkan HDFS
berdasarkan konsep dari Google File System (detailnya simak: GoogleFile System: Menggotong-royongkan Ribuan Komputer ala Google). Oleh karena
itu, HDFS sangat mirip dengan Google File System baik ditinjau dari konsep
logikanya, struktur fisik, maupun cara kerjanya. Lalu, sistem file
terdistribusi itu apa? Sederhananya, distributed file system (sistem file
terdistribusi) adalah file system yang menyimpan data tidak dalam satu hard
disk drive (HDD) atau media penyimpanan lainnya, tetapi data dipecah-pecah dan
disimpan tersebar dalam suatu cluster yang terdiri atas beberapa komputer, bisa
hanya 2 komputer, puluhan bahkan hingga ribuan komputer.
Sebagai distributed file system, HDFS
berguna untuk menangani data berukuran raksasa yang disimpan tersebar dalam
cluster-nya (disebut Hadoop cluster). Terus, data berukuran raksasa itu sebesar
apa? Tepatnya, tidak ada definisi yang baku. Namun demikian, kita dapat
mengambil Hadoop cluster yang dijalankan Yahoo! sebagai contoh (Gambar 1.
Hadoop cluster di Yahoo!). Yahoo! memiliki Hadoop cluster yang terdiri atas
3500 komputer dan menangani data sebesar 25 petabytes (1 petabyte = 1000
terabytes, 1 terabyte = 1000 gigabytes). Data sebesar ini dapat digolongkan
sebagai data berukuran raksasa dan secara volume sudah dapat dikategorikan
sebagai Big Data (detailnya simak: Big Data dan Rahasia Kejayaan Google).
Gambar
1. Hadoop cluster di Yahoo!
Model
Data dan Struktur HDFS
HDFS menyimpan suatu data dengan cara
membelahnya 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 dan selera.
Walaupun data disimpan secara tersebar,
dari kacamata client / pengguna, data tetap terlihat seperti halnya kita mengakses
file pada satu komputer. File yang secara fisik disimpan tersebar dalam banyak
komputer itu pun dapat diperlakukan layaknya memperlakukan file dalam satu
komputer (Gambar 2).
Gambar
2. Mengakses data pada HDFS seperti halnya mengakses data pada satu PC.
Sebagai distributed file system, 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. Laporan berkala DataNode kepada NameNode ini disebut Heartbeat.
Berdasarkan Heartbeat ini NameNode dapat mengetahui dan menguasai kondisi
cluster secara keseluruhan. Sebagai balasan atas Heartbeat dari DataNode,
NameNode akan mengirimkan perintah kepada DataNode. Jadi, dalam HDFS, NameNode
adalah boss yang mengatur dan mengendalikan atau me-manage Hadoop Cluster.
Sedangkan, DataNode adalah pekerja atau karyawan yang bertugas menyimpan data
dan melaksanakan perintah dari NameNode.
Prosedur
Menyimpan dan Membaca Data dalam HDFS
Untuk menyimpan data ke dalam HDFS, kita
harus memiliki satu komputer yang sudah terhubung dengan Hadoop Cluster.
Komputer ini disebut sebagai Client. Cukup dengan mengetikkan kata-kata
perintah pada Command Prompt komputer client, maka file akan ditransfer ke
Hadoop cluster dan disimpan tersebar dalam komputer-komputer yang ditugaskan
sebagai DataNode. Secara detailnya, pada saat kita mengeksekusi perintah
penyimpanan, komputer client akan berkomunikasi dengan NameNode untuk memberitahu
bahwa ada file yang hendak disimpan di HDFS dan menanyakan lokasi DataNode yang
bisa diakses untuk menyimpan data tersebut. Setelah mendapat daftar nama dan
alamat DataNode yang tersedia, komputer client akan secara langsung mentransfer
data ke DataNode - DataNode tersebut. Data yang akan ditransfer tersebut
tentunya secara otomatis sudah dibelah menjadi block-block data yang berukuran
64 MB atau sesuai setting. Block-block atau kepingan-kepingan data inilah yang
disimpan oleh tiap DataNode. Kemudian, setelah mendapat kepingan data dan
menyimpannya, tiap DataNode akan mengirimkan laporan kepada NameNode bahwa data
sudah diterima dan disimpan normal (Gambar 3).
Gambar
3. Menyimpan data ke dalam HDFS
Sedangkan untuk membaca data, prosedurnya
mirip dengan prosedur menyimpan data. Cukup dengan mengeksekusi kata-kata
perintah pada Command Prompt komputer client, maka data dalam HDFS akan
ditampilkan pada display komputer client. Detailnya adalah sebagai berikut.
Pada saat kita mengeksekusi perintah membaca data, komputer client akan
berkomunikasi dengan NameNode menanyakan nama dan alamat DataNode yang harus
diakses untuk mendapatkan data yang diinginkan. Setelah mendapat informasi
tersebut, komputer client akan secara langsung mengakses DataNode yang
bersangkutan untuk mendapatkan data yang diinginkan. Kemudian data akan
ditampilkan pada display komputer client, atau sesuai perintah pengguna(Gambar
4).
Gambar
4. Membaca data yang tersimpan dalam HDFS
Penutup
Demikian ulasan singkat tentang HDFS,
sebuah sistem penyimpanan data terdistribusi yang memungkinkan kita untuk
menyimpan data berukuran raksasa. HDFS dikembangkan berdasarkan konsep pada
Google File System yang dirilis oleh Google Inc. HDFS mempunyai karakteristik
sebagai sistem terdistribusi yang memiliki kapasitas berskala besar dan handal.
Namun demikian, ia dikenal cukup sederhana, tidak ribet dan mudah dioperasikan.
Untuk menginstal HDFS pun tidak susah. Silakan simak: "MenjalankanHadoop Mode Pseudo-Distributed" untuk menginstal HDFS hanya dalam satu
komputer, atau silakan simak: "MenjalankanHadoop Mode Fully Distributed" untuk menginstal HDFS dalam beberapa
komputer. Banyak perusahaan besar maupun menengah yang telah menggunakan Hadoop
seperti halnya Yahoo!, IBM, Facebook, Twitter, Recruit Japan, Rakuten Japan,
Amazon, dan NTT Docomo.
Comments
AI Course in Hyderabad
Machine Learning Courses in Hyderabad