ANALISA PENGARUH BLOCK SIZE PADA HDFS TERHADAP KECEPATAN PROSES MAPREDUCE Priagung Khusumanegara 1006661084 Seminar 2014
ANALISA PENGARUH BLOCK SIZE PADA HDFS TERHADAP KECEPATAN PROSES MAPREDUCEPriagung Khusumanegara1006661084Seminar 2014
LATAR BELAKANGHadoop 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.
TUJUANTujuan dari seminar ini adalah untuk mengetahui dan menganalisa apakah dengan mengubah besar block size data pada HDFS dapat mempengaruhi kecepatan proses mapreduce pada hadoop.
HADOOP FRAMEWORK
PENGERTIAN HADOOPHadoop 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).
ARSITEKTUR HADOOPInti dari hadoop adalah terdiri dari:
o HDFS (Hadoop Distribute File System) Untuk data yang terdistribusio 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.
KELEBIHAN HADOOP Mudah untuk di akses
Hadoop dapat berjalan pada jumlah cluster yang besar ataupun pada layanan komputasi awan seperti Amazon Elastic Compute Cloud (EC2).
StabilHadoop 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 digunakanHadoop sangat mudah dijalankan dan digunakan pada single node maupun multi node.
HDFS (HADOOP DISTRIBUTED FILE SYSTEM)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.
MODEL DATA PADA HDFSHDFS 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.
KOMPONEN HDFSHDFS memiliki 3 komponen utama berupa :1. Namenode2. Datanode3. Secondary Namenode
Gambar 2 : Komponen HDFS
Referensi Gambar : Chuck Lam. Hadoop In Action. Mainning Publications Co, Stamford, 2011.
NamenodeNamenode 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.
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.
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.
KELEBIHAN HDFSKelebihan 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.
KEKURANGAN HDFSKekurangan 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.
MAP REDUCEMapReduce 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.
KEUNTUNGAN MAPREDUCEKeuntungan 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.
KOMPONEN MAPREDUCETerdapat 2 komponen utama mamreduce pada hadoop yaitu :1. Jobtracker2. Tasktracker
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.
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
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.
RANCANGAN
PENJELASAN RANCANGANPercobaan 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.
SPESIFIKASI RANCANGAN 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
RANCANGAN PERCOBAAN
Gambar 6 : Rancangan percobaan
HASIL PERCOBAAN & ANALISA
PERCOBAAN PERTAMA DENGAN UKURAN FILE 512 MB
Block Size (MB) CPU Time Spent (ms)
64 153530
128 141430
192 133350
256 131800
320 129060
384 1281800 64 128 192 256 320 384 448
115000
120000
125000
130000
135000
140000
145000
150000
155000
160000
153530
141430
133350131800
129060 128180
Effect of HDFS Block Size
Block Size (MB)
CPU
Tim
e (m
s)
Table 2: Hasil percobaan dengan ukuran file 512 MB Gambar 7 : Grafik efek dari HDFS block size pada ukuran file 512 MB
PERCOBAAN KEDUA DENGAN UKURAN FILE 1 GB
Block Size (MB) CPU Time Spent (ms)
64 281220
128 271790
192 249320
256 237850
320 234240
384 2312200 64 128 192 256 320 384 448
0
50000
100000
150000
200000
250000
300000 281220 271790249320
237850 234240 231220
Effect of HDFS Block Size
Block Size (MB)
CPU
Tim
e (m
s)
Table 3: Hasil percobaan dengan ukuran file 1 GB Gambar 8 : Grafik efek dari HDFS block size pada ukuran file 1 GB
PERCOBAAN KETIGA DENGAN UKURAN FILE 1.5 GB
Block Size (MB) CPU Time Spent (ms)
64 435760
128 434700
192 386760
256 368230
320 361270
384 3516500 64 128 192 256 320 384 448
0
50000
100000
150000
200000
250000
300000
350000
400000
450000
500000435760 434700
386760368230 361270 351650
Effect of HDFS Block Size
Block Size (MB)
CPU
Tim
e (m
s)
Table 4: Hasil percobaan dengan ukuran file 1.5 GBGambar 9 : Grafik efek dari HDFS block size pada ukuran file 1.5 GB
PERCOBAAN KEEMPAT DENGAN UKURAN FILE 2 GB
Block Size (MB) CPU Time Spent (ms)
64 616120
128 589520
192 584390
256 575130
320 567450
384 561580 0 50 100 150 200 250 300 350 400 450530000
540000
550000
560000
570000
580000
590000
600000
610000
620000
630000616120
589520584390
575130567450
561580
Effect of Block Size
Block Size (MB)
CPU
Tim
e (m
s)
Table 5: Hasil percobaan dengan ukuran file 2 GB Gambar 10 : Grafik efek dari HDFS block size pada ukuran file 2 GB
ANALISADari 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:
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
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
KESIMPULANDari 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.
REFERENSI 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.
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