Friday, December 23, 2016

Teknologi Big Data Fundamental: Kelebihan Hadoop versi 2 dibanding Hadoop versi 1

Apa itu Apache Hadoop

Apache Hadoop adalah software framework yang memungkinkan pemrosesan data berukuran besar secara terdistribusi dengan melibatkan berkluster-kluster komputer. Hadoop didesain untuk dapat bekerja secara efektif baik dalam skala terkecil yang hanya melibatkan satu server hingga skala besar yang memperkerjakan ribuan komputer dimana masing-masing komputer tersebut memfasilitasi komputasi dan penyimpanan data secara lokal. Untuk menjamin High Availability, Hadoop tidak menggantungkannya pada hardware yang digunakan, tetapi framework Hadoop itu sendiri telah didesain untuk dapat mendeteksi dan menangani gagal fungsi (failure) pada level/layer aplikasi. Framework Hadoop terdiri atas 4 komponen (modul) utama, sebagai berikut:
1. Hadoop Distributed File System (HDFS), adalah file-system terdistribusi yang memfasilitasi penyimpanan data secara terdistribusi dalam kluster komputer.

2. Hadoop MapReduce, adalah sebuah sistem yang ditujukan untuk memproses data berukuran besar secara paralel.

3. Hadoop Common, adalah common utilitas yang digunakan untuk mendukung modul-modul Hadoop yang lainnya.

4. Hadoop YARN, adalah framework yang berperan dalam job scheduling dan resource management pada kluster Hadoop. Hadoop versi 1 tidak memiliki YARN.

Kelebihan Hadoop versi 2 dibanding Hadoop versi 1

Mengenai HDFS, telah dibahas secara detail pada artikel "HDFS: Berawal dari Google untuk Big Data", sedangkan tentang MapReduce (versi 1) dapat disimak dengan cukup komprehensif pada artikel "MapReduce: Besar dan Powerful, tapi Tidak Ribet". Pada artikel ini akan langsung dibahas perihal komponen-komponen baru pada Hadoop versi 2 yang tidak terdapat pada Hadoop versi 1, khususnya YARN. Komponen-komponen ini tentu merupakan pengembangan atau perbaikan terhadap kekurangan-kekurangan yang terdapat pada Hadoop 1.

YARN

YARN adalah singkatan dari Yet Another Resource Negotiatior. Salah satu perbedaan antara Hadoop versi 1 dengan Hadoop versi 2 adalah keberadaan YARN pada Hadoop versi 2 yang berperan dalam job sceduling dan resource management kluster Hadoop. Dapat dikatakan, YARN adalah Operating System (OS)-nya Hadoop.

Pada Hadoop versi 1, JobTracker adalah master daemon yang bekerja baik untuk Job resource management maupun untuk Jobs scheduling/monitoring. JobTracker bertanggung jawab atas keseluruhan siklus hidup (life cycle) dari suatu Job mulai dari scheduling hingga penyelesaian yang sukses (fungsi scheduling dan monitoring). JobTracker juga harus menjaga resource information pada tiap Datanode, sepeti informasi tentang jumlah unit Map dan Reduce yang tersedia pada DataNode-Datanode yang dimiliki HDFS (fungsi resource management). Jadi, dalam suatu kluster Hadoop berskala besar dengan ribuan Map Task dan Reduce Task yang berjalan dengan kontrol TaskTracker pada tiap DataNode, akan terjadi fenomena bottlenecks pada CPU dan Network. Arsitektur MapReduce versi 1 dapat diilustrasikan seperti pada Gambar 1.

Arsitektur MapReduce 1
Gambar 1. Arsitektur MapReduce 1

Sedangkan pada Hadoop versi 2, terdapat MapReduce versi 2 (MRv2) yang merupakan framework aplikasi yang bekerja dalam YARN, yang membagi dua fungsi utama JobTracker yakni resource management dan job scheduling/monitoring menjadi 2 komponen yang terpisah. ResourceManager bertugas mengatur pembagian sumber daya komputasi secara global kepada semua aplikasi yang sedang berjalan, sedangkan AplicationMaster berfungsi mengatur scheduling dan koordinasi pada tiap aplikasi yang sedang berjalan. YARN telah memberikan fungsi yang lebih baik dalam hal resource management, yang berimplikasi pada peningkatan efisiensi kluster Hadoop dan perbaikan performance aplikasi yang berjalan pada Hadoop. Feature YARN ini bukan hanya menghasilkan perbaikan pada pemrosesan data oleh MapReduce, tetapi juga telah memungkinkan penggunaan Hadoop untuk aplikasi pengolahaan data yang lain. Dengan kata lain, YARN dapat memfasilitasi aplikasi Big Data lain yang tidak menggunakan model pemrograman MapReduce, diantaranya: Spark, MPI, Giraph, HBase dan HAMA. Hadoop 2 telah menyediakan YARN API untuk membuat program dari framework non-MapReduce tersebut untuk dapat berjalan pada HDFS. Arsitektur YARN dapat diilustrasikan seperti pada Gambar 2, sedangkan siklus hidup (life cycle) dari MapReduce versi 2 (termasuk aplikasi-aplikasi Big Data lain) yang bekerja pada YARN dapat dijelaskan seperti pada Gambar 3.

Arsitektur YARN
Gambar 2. Arsitektur YARN

Job Life Cycle YARN
Gambar 3. Job Life Cycle YARN

Perlu dicatat, YARN dan MapReduce versi 2 (MRv2) adalah dua konsep yang berbeda. YARN adalah framework yang bertugas dalam resource management, berfungsi menyediakan infrastruktur dan API untuk memfasilitasi permintaan, alokasi, dan scheduling terhadap resources pada kluster Hadoop. YARN menyediakan daemon dan API yang diperlukan untuk mengembangkan berbagai jenis aplikasi terdistribusi generik, menangani dan mengatur permintaan resource/sumber daya (seperti memory dan CPU) dari tiap aplikasi tersebut, serta mengawasi eksekusinya. Sedangkan MRv2 adalah framework aplikasi yang berjalan didalam YARN.

Selain YARN, Hadoop versi 2 juga memiliki kelebihan dalam dua hal berikut dibanding Hadoop versi 1, yaitu:
1. HDFS Federation, adalah skalabilitas NameNode secara horisontal.

2. NameNode High Availability, yakni NameNode sudah bukan lagi Titik Tunggal penyebab gagal fungsi Hadoop.

HDFS Federation

Feature HDFS federation pada Hadoop 2 telah memungkinkan peningkatan skala secara horisontal pada HDFS. HDFS Federation memfasilitasi penggunaan sejumlah NameNode dan namespace dalam suatu kluster Hadoop. Fitur ini adalah salah satu dari fitur-fitur yang menjadi perhatian utama dari para pengguna Hadoop kelas enterprise seperti halnya Amazon dan eBay. Dalam hal ini, HDFS Federation menyediakan sejumlah NameNode dan Namespace secara independen, tidak saling bergantung, dan tak perlu ada koordinasi satu sama lain. Dalam hal ini, DataNode-DataNode dalam kluster Hadoop digunakan sebagai fasilitas penyimpanan bersama oleh para NameNode-NameNode yang ada pada kluster tersebut. Tiap DataNode terdaftar pada semua NameNode, mengirim periodic heartbeats dan block reports kepada semua NameNode, serta melaksanakan perintah/command dari NameNode-NameNode tersebut.

NameNode High Availability

Pada Hadoop 1, NameNode adalah Titik Tunggal penyebab gagal fungsi (single point of failure). Artinya, ketika NamaNode tidak berfungsi, maka keseluruhan server pada kluster Hadoop tidak akan bisa diakses. Bila hal ini terjadi, maka Administrator Hadoop mesti melakukan recover secara manual menggunakan Secondary NameNode. Untuk mencegah resiko tersebut, arsitektur Hadoop 2 telah memfasilitasi fungsionalitas NameNode ganda yang dikenal dengan istilah NameNode High Availability. Fitur ini menyediakan fungsi Passive Standby NameNode untuk mem-back-up Active NameNode secara otomatis jika terjadi gagal fungsi. Jadi Passive Standby NameNode ini dapat secara otomatis menggantikan fungsi NameNode yang sedang aktif jika NameNode tersebut tidak dapat berfungsi. Perubahan terhadap namespace akan selalu dicatat pada log yang disimpan dalam shared NFS yang dapat diakses baik oleh NameNode yang aktif maupun oleh NameNode yang pasif. Namun demikian, perubahan tersebut hanya dapat dilakukan oleh satu NameNode saja. Tepatnya, dalam kondisi normal, perubahan terhadap log namespace hanya dapat dilakukan oleh Active NameNode, sedangkan Passive NameNode hanya bisa membaca saja untuk selalu mendapatkan informasi metadata terkini yang berkaitan dengan kluster Hadoop. Jika Active NameNode mengalami gagal fungsi, maka secara otomatis Passive NameNode menjadi Active NameNode dan dapat melakukan update/perubahan terhadap namespace pada log yang tersimpan dalam shared NFS.

Demikianlah, kelebihan yang dimiliki Hadoop versi 2 dibanding Hadoop versi 1 yang telah menjadikan Hadoop dapat menjalankan berbagai jenis aplikasi Big Data (tidak hanya MapReduce) secara lebih efisien dan berperforma lebih baik. Hal ini lah yang telah membuat Hadoop berkembang menjadi sebuah ekosistem framework dan aplikasi Big Data yang dikenal dengan istilah Hadoop Ecosystem.


Ref:
"Introduction to Hadoop 2.0 and Advantages of Hadoop 2.0 over 1.0", Edureka.co, Edureka.co 2016.
"Hadoop and MongoDB", MongoDB.com, MongoDB.com 2016.

No comments: