Anda di halaman 1dari 10

HDFS & MAP REDUCE

1. HDFS
1.1. Apa itu HDFS
Hadoop dilengkapi dengan filesystem terdistribusi yang disebut HDFS, HDFS
merupakan singkatan dari Hadoop Distributed Filesystem. (kadang sebut
sebagai “DFS”-informally pada dokumentasi yang lebih tua atau pada
konfigurasi yang merupakan hal yang sama.) HDFS adalah filesystem andalan
Hadoop yang dirancang untuk menyimpan file yang sangat besar dengan pola
akses data streaming yang berjalan pada cluster dari komoditas hardware.

1.2. Bagaimana Arsitektur HDFS

Pada sebuah cluster HDFS, ada satu master node dan banyak worker nodes.
Master node disebut sebagai Name Node (NN) dan worker node disebut
sebagai Data Node (DN). Data Nodes bekerja sebagai penyimpanan data,
sedangkan Master Node bertanggungjawab dalam mengatur operasi file
system.
1.3. Desain HDFS
HDFS memungkinkan untuk menyimpan data yang sangat besar dengan pola
data access streaming dan berjalan pada sistem cluster dari komoditas
hardware. Desain HDFS memiliki sifat fault-tolerant, yaitu sistem komputasi
di mana jika ada node yang mati atau rusak maka ada node lainnya yang
mengambil alih pemrosesan tanpa mengganggu layanan sama sekali. Mari kita
bahas lebih lanjut tentang statement tersebut:

Mampu mendukung file yang sangat besar


“Sangat besar” dalam konteks ini berarti file yang memiliki ukuran hingga
terabyte. Bahkan ada cluster Hadoop yang saat ini berjalan dalam penyimpanan
petabyte. Desain dari HDFS mendukung aplikasi dengan set data yang sangat
besar.

Akses data Streaming


HDFS dibangun pada gagasan bahwa pola pengolahan data yang paling efisien
adalah write-once, read-many-times. Sebuah dataset biasanya dihasilkan atau
disalin dari source, dan kemudian diakukan berbagai analisis pada dataset,
kemudian duplikasi file didistribusikan ke beberapa node.

Manajemen Commodity Hardware


Hadoop tidak memerlukan biaya mahal maupun perangkat keras yang sangat
handal. Hadoop dirancang untuk berjalan pada sistem cluster dari resources
hardware, hardware yang digunakan dapat berasal dari beberapa vendor yang
berbeda yang memungkinkan tingkat galat node pada cluster tinggi. HDFS
dirancang untuk terus bekerja tanpa gangguan nyata dalam menghadapi
kegagalan tersebut karena HDFS memiliki sifat fault-tolerant.
Tidak Support low-latency
Aplikasi yang membutuhkan low-latency akses data dalam puluhan kisaran
milidetik, tidak akan bekerja dengan baik dengan HDFS. Karena HDFS
dioptimalkan untuk memberikan throughput yang tinggi dari data, dan ini
mungkin dengan mengorbankan latency atau response time.

Mampu bekerja dalam banyak file kecil


Karena namenode memegang kendali metadata filesystem dalam memori, batas
jumlah file di filesystem diatur oleh jumlah memori pada namenode tersebut.
Singkatnya, semakin banyak jumlah memory pada namenode, semakin besar
dan banyak pula file, direktori dan block yang dapat disimpan pada setiap
namenode tersebut.

Single writer
File dalam HDFS ditulis oleh seorang single writer. Writing selalu dilakukan
pada akhir file pada mode append-only. HDFS tidak mendukung multiple
writers karena untuk menghindari modifikasi file yang sewenang-wenang pada
file.

1.4. Konsep Problem-solving HDFS

Problem: Data terlalu besar untuk disimpan pada satu komputer


Big data saat ini terlalu besar untuk disimpan pada satu
komputer, tidak peduli seberapa hebat dan seberapa besar
penyimpanan file komputer tersebut. HDFS memecah banyak
penyimpanan dan database pada single machine untuk
membangun system yang berjaan pada multiple network,
sehingga filesystem ini terlihat sebagai gabungan dari beberapa
single filesystem dari luar.
Solution: Data disimpan pada multiple computer.
Problem: Harga dari high-end machines sangat mahal
Seperti yang kita tahu harga storage machines saat ini sangat
mahal, maka dari itu kita menggunakan cluster of computers,
kita ingin sistem yang kita bangun memiiki cost-effective yang
tinggi, sehingga kita akan memaksimalkan komoditas hardware
yang ada, tapi bukan berarti performa sistem kita murahan.
Solution: Berjalan dalam commodity hardware.

Problem: Commodity hardware akan mengalami galat


Commodity hardware memiliki banyak resiko dan kemungkinan
error yang tinggi, sehingga dibutuhkan manajemen sistem yang
sangat baik untuk menangani hal tersebut.
Solution: Sistem yang dibangun harus cukup pintar untuk menangani
berbagai macam kemungkinan galat.

Problem: Galat pada hardware memungkinkan data hilang


Kita memiliki jaringan mesin yang digunakan sebagai storage
layer, data dibagikan kepada setiap nodes, jika salah satu node
galat maka data dalam node tersebut akan hilang.
Solution: Replikasi (duplikasi) data
Problem: Bagaimana cara antar nodes berkoordinasi satu sama ain
Sejak setiap mesin menjadi bagian dari penyimpanan data, kita
akan memiliki koordinator yang berjalan pada tiap mesin untuk
mengatur penyimpanan mesin tersebut. Pendekatan yang paling
memungkinkan yaitu menunjuk sebuah MASTER untuk
dijadikan koordinator yang terpusat.

Solution: Menunjuk sebuah master untuk mengkoordinasikan nodes lain


yang bekerja.

1.5. Kesimpulan
Jadi, dengan berbagai macam situasi actual yang terjadi dan dengan segala
keterbatasan dari berbagai sisi yang membuat pengembangan storage big data
terlihat sulit, HDFS dapat menawarkan solusi penyimpanan data yang efisien,
murah dan mudah. HDFS menjawab semua tantangan kesulitan tersebut dan
menjadikan pengembangan storage big data lebih mudah untuk berkembang.
2. Map Reduce

2.1. Apa itu Map Reduce


Hadoop map reduce adalah algoritma atau proses komputasi pada sistem
penyimpanan terdistribusi (HDFS). Map reduce mampu memproses data yang
sangat besar secara pararel, karena komputasi bisa berjalan pada puluhan,
ratusan, atau bahkan ribuan node. Proses utama dari Map Reduce terdiri dari
dua bagian yaitu Map dan Reduce.

2.2. Bagaimana Map Reduce Bekerja

2.2.1. Master and Slave


Sama halnya dengan HDFS, map reduce memiliki master dan slave, mereka
berkolaborasi untuk bekerja secara bersama-sama. Master terdaftar
pada”masters”configuration file, dan slave terdaftar pada “slaves”,
begitulah cara mereka berkomunikasi satu sama lain. Master harus memiliki
sebuah daemon yang disebut sebagai “job tracker” daemon yang mengatur
proses pembagian tugas. Untuk mengerjakan tugasnya, slave harus
memiliki daemon lainnya yg disebut sebagai “task tracker” daemon.

2.2.2. Map Reduce Stabil


Sistem pada map reduce bekerja secara sempurna dengan setiap bagian nya
yang saling support satu sama lain. Koordinasi penanganan error dan
manajemen pembagian tugas antar job tracker master dan task tracker
worker bekerja secara stabil sehingga meskipun banyak scenario kerusakan
yang mungkin saja terjadi, antisipasi nya selalu siap untuk menghadapi.

2.2.3. Map Reduce Menggunakan Functional Programming


Map reduce bekerja pada data yang berada di HDFS. Map reduce tidak
pernah melakukan update data, tetapi sebagai gantinya map reduce menulis
output data baru yang merupakan salah satu prinsip functional
programming, map reduce juga menghindari update lockups dan juga
menghindari kebutuhan untuk mengkoordinasikan multiple process yang
dituliskan pada file yang sama. Sebagai gantinya setiap Reducer menulis ke
file outputnya sendiri dalam direktori HDFS, yang ditetapkan sebagai
output untuk pekerjaan yang diberikan. File Reducer’s output diberi nama
menggunakan Reducer ID yang unik. Pada proses lebih lanjut, MapReduce
akan memperlakukan semua file dalam direktori input sebagai inputnya,
dan dengan demikian meskipun memiliki banyak file dalam direktori input
maupun output tidak akan menjadi masalah.

2.2.4. Map Reduce Mengoptimalkan Network Traffic


Network bandwidth merupakan sumber daya paling penting dan berharga
dalam sebuah sistem terdistribusi dan harus digunakan secara hati-hati. Map
reduce bagaimanapun selalu mencatat dimana lokasi data dan dimana lokasi
task tracker nya (dengan menggunakan IP Address). Map reduce
mengutamakan komputasi data di jaringan local untuk mempermudah
tracking. Setiap task tracker memiliki salinan code untuk mulai melakukan
komputasi tugas.
Jika komputasi local tidak memungkinkan, map reduce memilih server
dengan lokasi terdekat, sehingga bisa menjaga efisiensi network traffic. Hal
tersebut dilakukan dengan cara membandingkan informasi jarak IP. Map
reduce juga mengikuti konfigurasi “rack awareness” untuk menemukan
server yang terdekat dalam satu rak yang telah di set informasi nya dalam
file konfigurasi.

2.2.5. Map reduce memiliki Mappers dan Reducers


Map reduce membagi komputasi kedalam dua bagian yaitu mappers dan
reducers.
2.3. Apa itu Mappers dan Reducers

Map reduce berbeda dengan programming models yang berkembang seiringan


dengan nya. Untuk mengilustrasikan map reduce model, kita gunakan contoh.
Contoh yang digunakan yaitu mengambil ‘Exit Polling’. Misal sedang
dilakukan proses pemilihan, Warga memilih di TPS. Untuk memprediksi hasil
pemilihan, banyak organisasi survey melakukan cara klasik yaitu ‘exit polling’
dengan cara mewawancara pemilih yang keluar dari TPU dan menanyakan
tentang pilihan mereka.

Kemudian untuk masalah yang akan kita pecahkan yaitu, kita ingin mengetahui
bagaimana perbedaan cara memilih antar kelompok usia. Bagaimana perbedaan
cara memilih orang-orang yang berusia 20-an, 30-an dan 40-an.
Kita akan membagi masalah ini kedalam dua fase:
 Fase 1: mengurutkan pemilih menjadi kelompok usia yg berbeda (20-
an, 30-an 40-an).
 Fase 2: wawancara setiap kelompok usia dan bagaimana mereka
memilih.

Berikut adalah ilustrasi nya:


MAPPER
Wanita yg bertugas mengurutkan (dengan bertanya ‘how old are you’)
hanya fokus mengenai pengurutan orang-orang berdasarkan grup nya
(usia). Dia tidak memikirkan step komputasi selanjutnya .
Dalam bahasa map reduce, orang ini disebut sebagai MAPPER.

REDUCER
Kemudian pria yang memakai topi hanya bertugas mewawancara
masing-masing grup yang sudah dibentuk dan menyimpulkan hasil
akhir dari masing-masing kelompok tersebut.
Disini ada beberapa hal yang terjadi:
Hasil salah satu kelompok umur tidak dipengaruhi oleh hasil kelompok
lainnya, sehingga bisa di olah secara parallel.
 Kita dapat yakin bahwa masing-masing kelompok memiliki
anggota yang sesuai dengan kriteria kelompok tersebut jika
pengawas melakukan tugasnya dengan benar (misalnya
kelompok 20-an untuk orang-orang umur 20-an).
 Dengan asumsi ini, pria bertopi yang bertugas mewawancara
dapat menyimpulkan hasil untuk tiap kelompok usia secara
independen.
Dalam bahasa map reduce, orang ini disebut sebagai REDUCER.

PARALLELISM
Setiap fase (fase map dan fase reduce) dapat diparalelkan secara
terpisah.

2.4. Siapa Penemu Map Reduce?

Map reduce ditemukan dan dikembangkan oleh dua ilmuan google yaitu Jeff
Dean dan Sanjay Ghemawat.
2.5. Keuntungan Map Reduce Programming
Map reduce membuat hidup pengembang lebih santai. Ya, itu nyata. Seperti
yang kita ketahui map reduce merangkum banyak hasil penelitian dan
pengalaman dari para ilmuwan dan praktisi perancangan sistem pemrosesan
terdistribusi. Hal ini memungkinkan perhitungan tak terbatas pada jumlah data
yang tak terbatas pula. Meskipun terlihat sederhana tetapi ini memiliki kekuatan
yang besar, dibuktikan dengan banyaknya aplikasi canggih yang dibangun
berdasarkan framework ini.

Anda mungkin juga menyukai