2. Hadoop merupakan framework software berbasis Java yang digunakan untuk
mengolah data dalam ukuran yang besar dan jumlah yang banyak secara
terdistribusi. Hadoop menggunakan teknologi yang disebut mapreduce agar dapat
mengolah data secara paralel dan terdistribusi. Hadoop memiliki file system
sendiri yang disebut dengan HDFS. Data yang tersimpan pada HDFS berupa
potongan-potongan data yang disebut dengan block size. Besar block size pada
HDFS tersebut dapat disesuaikan dengan keinginan user. Pengaturan besar
ukuran block tersebut diharapkan dapat memberikan pengaruh pada proses
mapreduce pada hadoop.
3. Tujuan dari seminar ini adalah untuk mengetahui dan menganalisa apakah
dengan mengubah besar block size data pada HDFS dapat mempengaruhi
kecepatan proses mapreduce pada hadoop.
4.
5. Hadoop merupakan framework software berbasis Java dan opensource yang
berfungsi untuk mengolah data yang memiliki ukuran yang besar secara
terdistribusi dan berjalan diatas cluster yang terdiri dari beberapa komputer yang
saling terhubung (parallel computing).
6. Inti dari hadoop adalah terdiri dari:
o HDFS (Hadoop Distribute File System) Untuk data yang terdistribusi
o MapReduce Framework dari aplikasi yang terdistribusi
Gambar 1: Bagian inti hadoop (a) komponen HDFS (b) komponen mapreduce
Referensi Gambar : JeongJin Cheon, Tae-Young Choe. Distributed Processing of Snort Alert Log using Hadoop. International Journal of Engineering and Technology (IJET), Gyeongbuk Korea, 2013.
7. Mudah untuk di akses
Hadoop dapat berjalan pada jumlah cluster yang besar ataupun pada layanan komputasi awan seperti
Amazon Elastic Compute Cloud (EC2).
Stabil
Hadoop sangat baik dalam menangani sebuah masalah yang muncul ketika sedang memproses sebuah
pekerjaan, hal ini dikarenakan dari awalnya hadoop memang ditunjukan untuk di jalankan pada
komuditas perangkat keras.
Memiliki skala yang besar
Hadoop memiliki jangkauan skala yang besar, sehingga dapat menghandle ketika adanya pertambahan
jumlah node dalam sebuah cluster.
Mudah digunakan
Hadoop sangat mudah dijalankan dan digunakan pada single node maupun multi node.
8. HDFS adalah file system berbasis Java yang terdistribusi pada hadoop. Sebagai file
system terdistribusi, HDFS berguna untuk menangani data dalam jumlah besar
yang disimpan dan tersebar didalam banyak komputer yang berhubungan yang
biasa disebut dengan cluster.
9. HDFS menyimpan suatu data dengan cara membelahnya menjadi potongan-
potongan data yang berukuran 64 MB (secara default), dan potongan-potongan
data tersebut kemudian disimpan tersebar dalam setiap node yang membentuk
clusternya. Potongan-potongan data tersebut didalam HDFS disebut block, dan
ukurannya tidak terpaku harus 64 MB, dimana ukuran block tersebut dapat
disesuaikan dengan keinginan user.
10. HDFS memiliki 3 komponen utama berupa :
1. Namenode
2. Datanode
3. Secondary Namenode
Gambar 2 : Komponen HDFS
Referensi Gambar : Chuck Lam. Hadoop In Action. Mainning Publications Co, Stamford, 2011.
11. Namenode
Namenode terdapat pada komputer yang bertindak sebagai master yang mengkoordinasi datanode
untuk melakukan beberapa tugas (jobs). Namenode ini adalah pusat dari sistem berkas pada HDFS.
Gambar 2 : Namenode pada HDFS
Namenode membuat sistem direktori dari semua file yang ada di dalam sistem dan dapat mengetahui bagaimana file
tersebut di pecah-pecah menjadi beberapa blok-blok data serta mengetahui nodes yang menyimpan blok-blok data
tersebut.
12. Datanode
Datanode adalah salah satu komponen dari HDFS yang berfungsi untuk
menyimpan dan mengambil kembali data pada slave node pada setiap
permintaan yang dilakukan oleh namenode. Datanode berada pada setiap slave
node pada sebuah cluster yang telah dibuat. Selama sistem berjalan, datanode
terhubung dengan namenode dan melakukan sebuah handshake. Handshake ini
bertujuan untuk melakukan verifikasi terhadap namespace ID dan juga software
version pada sebuah datanode.
13. Secondary Namenode
Secondary namenode adalah daemon yang berfungsi melakukan monitoring
keadaan dari cluster HDFS. Sama seperti namenode, pada setiap cluster yang
ada terdapat satu secondary namenode, yang berada pada master node.
Secondary namenode ini juga berfungsi untuk membantu dalam meminimalkan
down time dan hilangnya data yang terjadi pada HDFS. jika terjadi kegagalan
yang dilakukan oleh namenode maka dibutuhkan konfigurasi yang dilakukan
oleh user untuk menjadikan secondary namenode sebagai namenode yang utama.
14. Kelebihan dari HDFS adalah adanya kerjasama antara jobtracker dan tasktracker.
Jobtracker mengurangi pekerjaan yang dilakukan oleh tasktracker dengan
memberitahu lokasi data dan memberikan penjadwalan pekerjaan yang harus
dilakukan. Hal ini akan mengurangi intensitas lintas data yang berjalan pada
jaringan dan mencegah transfer data yang tidak perlu, sehingga dapat berdampak
signifikan terhadap spent time dalam menyelesaikan suatu pekerjaan.
15. Kekurangan dari HDFS ini adalah master node masih bersifat Single Point of
Failure sehingga apabila master node mati maka data akan hilang. Salah satu cara
untuk mengantisipasi masalah tersebut adalah dengan membuat cloning dari
master node pada server yang berbeda, sehingga apabila master node utama
mengalami masalah, maka langsung dapat digantikan dengan cloning lainnya.
16. MapReduce adalah framework software yang diperkenalkan oleh google dan digunakan untuk
melakukan suatu pekerjaan dari komputasi terdistribusi yang dijalankan pada sebuah cluster. Map
Reduce ini terdiri dari konsep fungsi map dan reduce yang biasa digunakan pada functional
programming.
Proses “Map”: namenode menerima input data, kemudian data tersebut dipecah-pecah menjadi
beberapa block yang kemudian didistribusikan kepada datanode. Datanode ini kemudian akan
melakukan pemrosesan blok-blok yang diterimanya untuk kemudian apabila proses telah selesai,
maka akan dikembalikan ke namenode.
Proses “Reduce”: namenode menerima hasil dari pemrosesan pada setiap block dari masing-masing
datanode, kemudian menggabungkan semua blok-blok yang telah di proses menjadi satu kesatuan
untuk memperoleh kesimpulan dari hasil pemrosesan.
17. Keuntungan dari mapreduce ini adalah proses map dan reduce yang dapat
diterapkan secara terdistribusi. Pada setiap proses mapping dan proses reducing
bersifat independent sehingga proses dapat dijalankan secara paralel pada waktu
yang sama, selama output dari proses mapping mengirimkan key value yang sesuai
dengan proses reducingnya.
18. Terdapat 2 komponen utama mamreduce pada hadoop yaitu :
1. Jobtracker
2. Tasktracker
19. JobTracker
Jobtracker adalah sebuah daemon yang berfungsi untuk memecah
permintaan yang diberikan ke HDFS menjadi beberapa pekerjaan
yang lebih kecil berdasarkan jumlah slave yang ada. Setelah
permintaan tersebut dipecah-pecah menjadi beberapa pekerjaan
(jobs), jobtracker ini akan memberikan pekerjaan-pekerjaan
tersebut kepada setiap slave node yang terdapat di dalam cluster
tersebut.
20. Gambar 4: Keja jobtracker pada hadoop
Referensi Gambar : Interaction between the JobTracker, TaskTracker and the Scheduler @ homepage, http://www.thecloudavenue.com/2011/11/interaction-between-jobtracker.html
21. Tasktracker
Tasktracker adalah sebuah daemon yang berfungsi untuk menerima pekerjaan
yang diberikan oleh jobtracker dan kemudian menjalankan pekerjaan tersebut ke
dalam JVM yang terpisah.
Gambar 5 : Kerja tasktracker pada setiap node
Referensi Gambar : Chuck Lam. Hadoop In Action. Mainning Publications Co, Stamford, 2011.
22.
23. Percobaan yang akan dilakukan adalah dengan merancang sebuah cluster yang
terdiri dari 3 node yang terdapat pada VMWare Workstation 10 untuk
menjalankan teknologi mapreduce pada hadoop secara paralel dan menjalankan
program wordcount, serta bagaimana cara membagi file menjadi beberapa block
pada HDFS dengan ukuran yang berbeda-beda pada setiap percobaan yang
dilakukan.
24. Spesifikasi Host VM 1 VM 2 VM 3
Processor Intel ® Core ™ i7-2600
One
Core
One
Core
One
Core
RAM 4.00 GB 1.00 GB 1.00 GB 1.00 GB
System Operation Linux Mint 13 CentOS CentOS CentOS
Tabel 1 : Spesifikasi Rancangan
27. Block Size (MB) CPU Time Spent (ms)
64 153530
128 141430
192 133350
256 131800
320 129060
384 128180
153530
141430
133350
131800
129060
128180
125000
130000
135000
140000
145000
150000
155000
0 64 128 192 256 320 384 448
CPUTime(ms)
Block Size (MB)
Effect of HDFS Block Size
Table 2: Hasil percobaan dengan ukuran file 512 MB
Gambar 7 : Grafik efek dari HDFS block size pada ukuran file 512 MB
28. Block Size (MB) CPU Time Spent (ms)
64 281220
128 271790
192 249320
256 237850
320 234240
384 231220
281220
271790
249320
237850 234240 231220
0
50000
100000
150000
200000
250000
300000
0 64 128 192 256 320 384 448
CPUTime(ms)
Block Size (MB)
Effect of HDFS Block Size
Table 3: Hasil percobaan dengan ukuran file 1 GB Gambar 8 : Grafik efek dari HDFS block size pada ukuran file 1 GB
29. Block Size (MB) CPU Time Spent (ms)
64 435760
128 434700
192 386760
256 368230
320 361270
384 351650
435760 434700
386760
368230 361270 351650
0
50000
100000
150000
200000
250000
300000
350000
400000
450000
500000
0 64 128 192 256 320 384 448
CPUTime(ms)
Block Size (MB)
Effect of HDFS Block Size
Table 4: Hasil percobaan dengan ukuran file 1.5 GB
Gambar 9 : Grafik efek dari HDFS block size pada ukuran file 1.5
GB
30. Block Size (MB) CPU Time Spent (ms)
64 616120
128 589520
192 584390
256 575130
320 567450
384 561580
616120
589520
584390
575130
567450
561580
550000
560000
570000
580000
590000
600000
610000
620000
0 50 100 150 200 250 300 350 400 450
CPUTime(ms)
Block Size (MB)
Effect of Block Size
Table 5: Hasil percobaan dengan ukuran file 2 GB Gambar 10 : Grafik efek dari HDFS block size pada ukuran file 2 GB
31. Dari hasil percobaan yang dilakukan pada setiap file terlihat bahwa pengubahan
parameter block size pada file tersebut dapat memberikan efek pada kecepatan
proses mapreduce pada hadoop yaitu jika semakin besar block size maka kecepatan
proses mapreduce semakin cepat. Jika kita memperbesar ukuran block maka file
tersebut akan memiliki jumlah block yang lebih sedikit, hal ini dapat dijelaskan
sebagai berikut:
32. File 512 MB dengan ukuran block 64 MB
Pada Gambar 11 terlihat bahwa jika file dengan ukuran 512 MB dibagi menjadi
beberapa block dengan ukuran masing-masing block 64 MB akan menghasilkan 6
block.
Gambar 11 : Ukuran block 64 MB pada file 512 MB
33. File 512 MB dengan ukuran block 128 MB:
Pada Gambar 12 terlihat bahwa jika file dengan ukuran 512 MB dibagi menjadi
beberapa block dengan ukuran masing-masing block 64 MB akan menghasilkan 4
block. Jika jumlah block semakin sedikit, maka akan mengurangi ukuran metadata
dari namenode sehingga mengurangi kerja dari namenode. Hal ini dapat menjadi
pertimbangan penting untuk file system yang sangat besar. Selain itu dengan jumlah
block yang lebih sedikit, hal ini akan memudahkan scheduler mapreduce dalam
menjadwalkan tugas yang diberikan sehingga dapat mengurangi kerja dari scheduler
mapreduce dan namenode.
Gambar 12 : Ukuran block 128 MB pada file 512 MB
34. Dari seluruh percobaan yang telah dilakukan dapat diambil kesimpulan bahwa:
Block size pada HDFS akan mempengaruhi kecepatan proses mapreduce pada
hadoop pada saat menjalankan program wordcount. Jika kita memperbesar block
size pada HDFS maka akan mempercepat proses mapreduce pada saat
menjalankan program wordcount,
Jika memperbesar block size pada HDFS maka jumlah block pada HDFS akan
menjadi berkurang sehingga menghasilkan jumlah metadata yang lebih sedikit,
hal ini dapat mengurangi kerja dari namenode pada sebuah cluster dan spent
time pada CPU pada saat melakukan proses mapreduce.
Jumlah block yang lebih sedikit pada HDFS akan memudahkan scheduler
mapreduce dalam menjadwalkan tugas yang diberikan sehingga dapat
mengurangi kerja dari scheduler mapreduce dan namenode.
35. Chuck Lam. Hadoop In Action. Mainning Publications Co, Stamford, 2011.
Tom White. Hadoop: The Definitive Guide. O’Reilly, Scbastopol, California,
2009.
Shv, Hairong, SRadia, Chansler. The Hadoop Distributed File System.
Sunnyvale, California USA, IEEE, 2010.
Intel Corporation. Optimizing Java* and Apache Hadoop* for Intel®
Architecture. Intel Corporation, USA, 2013.
Apache TM Hadoop @ homepage, http://hadoop.apache.org/.
JeongJin Cheon, Tae-Young Choe. Distributed Processing of Snort Alert Log
using Hadoop. International Journal of Engineering and Technology (IJET),
Gyeongbuk Korea, 2013.
Aditya B. Patel, Manashvi Birla, Ushma Nair. Addressing Big Data Problem
Using Hadoop and Map Reduce. Nirma University International Conference
On Engineering, 2012.
36. Tutorial Single Node Hadoop. http://www.michael-noll.com/tutorials/running-
hadoop-on-ubuntu-linux-single-node-cluster/
Tutorial Multinode Hadoop. http://www.michael-noll.com/tutorials/running-hadoop-
on-ubuntu-linux-multi-node-cluster/
Amit Anand. Configuration Parameters dfs.Block.Size. Hadoop, 2013.
Garry Turkington. Hadoop Beginner's Guide. Packt Publishing, Birmingham,
2013.
Dima May. Hadoop Distributed File System (HDFS) Overview. coreservlets.com,
2012.
Map Reduce.http://www.yalescientific.org/2012/03/hadapt-yale-startup/
Interaction between the JobTracker, TaskTracker and the Scheduler @ homepage,
http://www.thecloudavenue.com/2011/11/interaction-between-jobtracker.html
Magang Industri--Meruvian.org Cloud Computing