Breaking News

Hadoop - Mengenal Services & Server Hadoop

Mengenal Services & Server Hadoop

Mengenal Services & Server Hadoop
Artikel ini mengenalkan pelbagai services utama yang sering digunakan dalam penggunaan Hadoop. Juga dipaparkan secara ringkas tipologi Server yang diperlukan untuk menjalankan pelbagai service Hadoop tersebut.
CAT: Untuk memahami beberapa istilah teknis di artikel ini, disarankan terlebih dahulu membaca artikel “Mengenal Teknologi Penyimpanan Hadoop“.
Hadoop adalah platform komputer terdistribusi berbasis open source dari Apache. Hadoop pertamakali dikembangkan oleh Doug Cutting setelah meniru pengelolaan data secara terdistribusi oleh Google File System (GFS) & pemrosesan komputasi terdistribusi diatasnya. Hadoop banyak dieksploitasi untuk mengolah pelbagai varian data –umumnya data tak terstruktur seperti log dari data mesin, multimedia seperti citra satelit ataupun rekaman suara, hingga data web seperti media sosial– dalam ukuran volume yang sangat masif, yang masyhur dikenal sebagai Big Data.
Tipe Services dalam Ekosistem Hadoop
Dengan meniru GFS, Cutting mengembangkan HDFS (Hadoop Distributed File System) dan framework komputasi terdistribusi bernama MapReduce. Map Reduce adalah komponen service kunci yang paling sering dikaitkan dengan istilah “Hadoop”, berfungsi untuk melakukan proses komputasi Big Data secara paralel dan terdistribusi.
Perkembangan Hadoop melahirkan pelbagai pengembangan perangkat lunak untuk membantu pengembangan Hadoop lebih mudah dipakai, mudah dioperasionalkan, dan mudah terintegrasi dengan platform TI diluar Hadoop. Pelbagai perangkat lunak ini dinamakan Ekosistem Hadoop. Hampir semuaEkosistem Hadoop dikembangkan dari Hadoop API. Berikut daftar beberapa Hadoop Ecosystem  yang cukup dikenal karena kegunaannya:
  • Pig, adalah scripting platform untuk pengembangan dan eksekusi job Hadoop. Pig memberikan pengalaman development yang lebih mudah dibandingkan pemrograman MapReduce berbasis pemrograman Java. Pig umumnya digunakan dalam kebutuhan pengolahan data mentah untuk menjadi data matang kebutuhan analitik selanjutnya baik menggunakan Hive maupun Mahout.
  • Hive, service Data Warehouse yang mengakses langsung file-file yang tersimpan dalam HDFS, dan juga diset untuk mengakses langsung pelbagai table HBase. Hive memberikan pengalaman development yang lebih familiar karena menggunakan sintaks SQL yang sudah dikenal umum. Umumnya Hive digunakan untuk kebutuhan analisis data lebih lanjut yang sebelumnya yang sudah matang diproses oleh Pig atupun Mahout.
  • Mahout adalah library Machine Learning (ML) –berbasis pemrograman Java– yang teruji kompatibel dengan platform komputasi MapReduce Hadoop untuk pemrosesan analitik prediktif (predictive analytic)
  • Hue adalah server web portal yang dapat mengakses langsung Hadoop. Hue dapat digunakan untuk meregistrasi job Hadoop, monitor proses eksekusinya dan me-review hasilnya.
  • HBase, database terdistribusi untuk menampung Big data secara terstruktur dalam suatu table sangat besar. HBase adalah sebuah database kolumnar, bukan relasional layaknya RDBMS biasanya. HBase memungkinkan kita melakukan random read-write untuk melakukan proses CRUD ke dalam kluster Hadoop. Ini berbeda dengan tipologi HDFS dimana kita hanya bisa melakukan proses write saja, tapi data yang sudah disimpan dalam HDFS tidak bisa diupdate. HBase juga terinspirasi oleh pengembangan Google BigTable.
  • Sqoop  memungkinkan migrasi data antara RDBMS eksternal dengan Hadoop.
  • Flume, untuk mengakuisisi sumber data berbasis logfiles secara real-time.
  • Avro, suatu kontainer untuk menampung kumpulan data berukuran kecil dalam satu file binary besar yang kompak, terstruktur skema-datanya & ringan untuk diproses lebih lanjut oleh MapReduce.
  • Oozie, untuk kebutuhan pengelolaan job scheduling & kontrol proses workflow dari serangkaian Job MapReduce yang saling terkait.
  • Zookeeper, high-performance service untuk koordinasi pelbagai aplikasi terdistribusi yang berjalan di atas Hadoop.
Tipologi Server Hadoop
Untuk menjalankan pelbagai services Hadoop diatas,  Hadoop memerlukan dua jenis Server sebagai berikut:
1. Master
Master nodes haruslah lebih terjaga dari segala kemungkinan hardware failures, serta menjalankan service-service Hadoop yang sangat kritikal. Ketika Master node terjadi down, hal ini berarti semua service Hadoop akan down, sehingga semua Worker Node tidak bisa diakses. Master nodes adalahsingle-point-of-failures dalam deployment suatu kluster Hadoop.
2. Worker
Worker Node lebih ditolerir jika salah satu node-nya down ketika proses komputasi berjalan.Worker nodes dirancang untuk zero-fault-tolerance.
Di setiap Master dan Worker node akan menampung Core Service Hadoop yang spesifik. Ada 5 (lima) Core Service Hadoop yang masing-masing memiliki daemon servicenya sendiri-sendiri:
  1. Namenode: menyimpan metadata filesystem (daftar hirarki direktori dan files yang tersimpan di Hadoop Distributed Filesystem, user permission tiap folder dan files), pemetaan file ke block, dan menghadirkan gambaran tunggal global dari filesystem Hadoop yang terdistribusi. Semua data ini disimpan namenode dalam memory (RAM).
  2. Secondary Namenode: melakukan checkpoint untuk setiap transaction log yang dilakukan namenode. Tujuannya agar secondary namenode bisa menggantikan fungsi namenode ketika down, dengan merujuk pada posisi terakhir transaksi pengelolaan filesystem terdistribusi yang tersimpan di transaction log tadi. Adapun metadata filesystem (daftar hirarki direktori dan files yang tersimpan di Hadoop Distributed Filesystem, user permission tiap folder dan files), dan pemetaan file ke block akan dipooling kembali dari kluster datanodes untuk disimpan dalam memory (RAM).
  3. Datanode: bertanggung jawab dalam menerima dan menyimpan chunk blok data.
  4. Jobtracker: bertindak sebagai master proses. Bertanggung jawab dalam menerima MapReduce job submission dari client, scheduling task untuk bisa berjalan proses komputasinya disetiap worker node, dan melakukan fungsi administratif seperti mengecek worker health, dan memonitor progress setiap task yang terdistribusi lintas worker node tersebut.
  5. Tasktracker: menerima task assignments dari jobtracker, menginstasiasi logic code dari MapReduce job,mengeksekusi task map/reduce secara lokal khusus untuk chunk datablok yang ada di worker node tersebut, dan melaporkan hasilnya kembali ke jobtracker secara periodik.
Adapun tabulasi pemetaan 5 (lima) Service Hadoop ini ke dalam Master & Worker servernya adalah sebagai berikut:
Kategori HardwareCore Hadoop ServiceKeterangan
Master
  1. Namenode
  2. Secondary Namenode
  3. Jobtracker
  • Setiap Hadoop service untuk Master node bisa diset-up satu service untuk satu Master. Misal, ada 3 Worker Nodes dengan 1 Node untuk Namenode service, 1 Node untuk Jobtracker serice, dan 1 node untuk Secondary Namenode & backup Jobtracker service. Atau semua service tersebut dalam satu Master node.
  • Variasi ini tergantung pada besaran kluster Worker nodes yang akan dikelola oleh Master nodes.
Worker
  1. Datanode
  2. Tasktracker
  • Datanode dan Tasktracker service harus selalu ada berdampingan untuk disetiap Worker node
Hadoop adalah teknologi terkini yang sangat berharga untuk dipelajari, karena trend Big Data di masa mendatang sudah di depan mata, karena itu Hadoop menjadi bagian penting menyelesaikan persoalan 

No comments