pengenalan Hadoop, HDFS dan MapReduce
Big Data

Mengenal Hadoop, HDFS dan MapReduce

Hadoop merupakan framework open source untuk Big Data yang memungkinkan untuk melakukan komputasi terdistribusi

Hadoop Diciptakan di Yahoo oleh Doug Cutting dan Mike Cafarella pada tahun 2005

Tentunya kemunculan Hadoop dilatarbelakangi oleh para raksasa search engine untuk memproses datanya yang luar biasa besar seperti Google dan Yahoo

Seperti yang kita di artikel sebelumnya bahwa komputasi terdistribusi memudahkan dalam memproses data dalam ukuran besar diproses secara efisien dengan membagi-bagi ke dalam task yang lebih kecil untuk masing-masing mesin

Ada beberapa tantangan dalam pemrosesan Big Data yang dapat dihandel dengan baik oleh Hadoop

Saat ini Hadoop telah dikembangkan ke dalam 3 versi yaitu versi 1.x, 2.x dan 3.x

Perubahan Hadoop versi 1 ke versi 2 ada penambahan untuk cluster resource management yang sangat membantu dan membuat Hadoop menjadi ekosistem yang lebih besar

Ada 2 komponen utama dalam Hadoop yaitu HDFS sebagai data storage dan MapReduce sebagai engine data processing

Hadoop Distributed File System (HDFS)

HDFS adalah file sistem yang menyimpan data secara terdistribusi di Hadoop

HDFS mempunyai 2 komponen utama yaitu Namenode dan Datanode

Konsep Namenode dan Datanode adalah seperti Master dan Slave. Namenode sebagai master dan datanode sebagai slave

Namenode bertanggung jawab untuk menyimpan semua metadata sedangkan Datanode bertugas untuk menyimpan blok data

Jika diilustrasikan adalah Namenode sebagai manajer yang mengerti informasi tentang metadata beserta informasi dimana data direplika dan ditempatkan. Sedangkan Datanode sebagai worker yang bertugas untuk menyimpan data dalam blok


Data dalam HDFS akan dipecah-pecah menjadi lebih kecil yang disebut blok dan setiap blok mempunyai default ukuran yang sama

Secara default, ukuran blok di Hadoop versi 1 adalah 64 MB dan di versi 2 adalah 128 MB

Misalnya kita punya file dengan ukuran 400 MB maka akan dipecah menjadi 3 blok yaitu 128 MB, 128 MB dan 44 MB

Kurang lebih akan seperti ini jika diilustrasikan

kelebihan lainnya adalah setiap blok di Datanode akan direplikasi atau yang dikenal dengan istilah Fault tolerance. Fault tolerance adalah kondisi sistem tetap dapat berjalan walaupun ada kerusakan dalam salah satu komponennya

Misalnya salah satu Datanode rusak karena error atau bencana sehingga semua data hilang akan dengan mudah merecovery karena sudah terduplikasi di blok atau mesin lainnya

Ada beberapa keunggulan HDFS antara lain

Fault ToleranceSetiap blok direplikasi di 3 mesin
SpaceSpace yang mudah ditambahkan
ScalabilityMudah dilakukan scaling
FlexibilityFleksibel untuk semua jenis data

Perintah untuk operasi data di HDFS mirip dengan perintah di Linux seperti ls, mkdir, cat, cp, move dan lainnya

Berikut beberapa contoh perintah di HDFS

hdfs dfs –ls
hdfs dfs -mkdir <folder name>
hdfs dfs -copyFromLocal <local file path>  <dest(present on hdfs)>
hdfs dfs -cat <path>
hdfs dfs -copyToLocal  <<srcfile(on hdfs)> <local file dest>
hdfs dfs -cp  <src(on hdfs)>  <dest(on hdfs)>
hdfs dfs -mv  <src(on hdfs)> <src(on hdfs)>

MapReduce

MapReduce adalah framework untuk melakukan pemrosesan data secara terdistribusi. Terdiri dari fungsi Map dan Reduce

Map bertugas untuk mendistribusikan tugas pemrosesan data antara komputer yang berbeda lalu mengurangi hasilnya dalam satu ringkasan yang disebut dengan Reduce

Ada beberapa tahapan dalam MapReduce yaitu splitting, mapping, shuffling dan reducing

splittingSplitting data menjadi blok
mappingSetiap blok diproses untuk mendapatkan key-value
shufflingPengumpulan Key yang sama
reducingAgregasi untuk seluruh pasangan key-value

Berikut adalah contoh kasus MapReduce untuk mencari agregasi kata seperti yang sudah kita bahas di artikel sebelumnya

This image has an empty alt attribute; its file name is image-7-1024x474.png
https://www.oreilly.com/library/view/distributed-computing-in/9781787126992/5fef6ce5-20d7-4d7c-93eb-7e669d48c2b4.xhtml

Kapan Menggunakan Hadoop?

Beberapa kondisi cocok menggunakan Hadoop seperti

  • Melakukan processing dengan data yang besar seperti searching, log processing, data warehousing, data analytics
  • Lebih cocok untuk read data
  • Cocok untuk file berukuran besar
  • Untuk batch processing

Sedangkan Hadoop kurang cocok digunakan untuk kondisi

  • Low latency data
  • Tidak cocok untuk write dan update data
  • Banyak file dengan ukuran kecil
  • Untuk stream processing

Leave a Reply

Your email address will not be published. Required fields are marked *