HDFS, MapReduce, dan Contoh Penerapan Big Data

HDFS, MapReduce, dan Contoh Penerapan Big Data

Perkembangkan teknologi informasi terus melahirkan istilah istilah baru diantaranya big data, HDFS dan MapReduce. Hal ini sejalan dengan pesatnya pertumbuhan teknologi informasi yang berdampak pada pertumbuhan dan volume data. Big data adalah suatu istilah informasi yang mana tidak bisa dijalankan maupun dianalisa menggunakan alat tradisional. Menurut Laney dalam Ali (2015) mengartikan big data menjadi tiga dimensi besar yaitu volume yang mengacu pada jumlah data, velocity pada kecepatan data, dan variety untuk jenis data yang dihimpun. Big data mengacu pada kumpulan data dengan ukuran sangat besar yang dimiliki oleh suatu organisasi, perusahaan ataupun institusi. Big data yang dihasilkan dijalankan oleh perusahaan dan dapat menjadi informasi yang bermanfaat bagi kemajuan perusahaan. Adanya jumlah data yang besar membuat perusahaan mencari cara untuk menyimpan serta mengolah data yang besar. Pengolahan terhadap data yang memiliki ukuran yang besar (big data) bukan suatu pekerjaan yang mudah.

Dalam mengelola big data tentunya memiliki perlakuan berbeda dengan mengolah data yang memiliki ukuran yang kecil. Satu computer akan menghambat kinerja dalam mengolah data jika ukurannya melebihi kapasitas memori, sehingga diperlukan suatu alat atau framework yang bisa membantu dalam proses pengolahan terhadap data yang besar, salah satunya yakni menggunakan Apache Hadoop.1

Apache Hadoop merupakan framework yang bisa dijalankan pada satu komputer maupun banyak komputer dalam jaringan yang saling terhubung. Hadoop menawarkan teknologinya yaitu Hadoop Distributed File System HDFS dan MapReduce. Perbedaan HDFS dan MapReduce yaitu HDFS bertindak sebagai tempat menyimpan data dan MapReduce bertindak sebagai mesin pengolah data.2 Hadoop menyediakan sistem file scalable yang dapat menyimpan data dalam jumlah besar, sehingga Hadoop sangat diperlukan di era cloud computing.

1.     HDFS

1.1  Pengertian

HDFS atau Hadoop Distributed File System, merupakan sebuah proyek opensource yang dirintis Apache Software Foundation dan subproyek Apache Hadoop. Asal usul dari nama Hadoop adalah diberikan oleh Doug Cutting, yaitu berasal dari nama mainan gajah anaknya3. Pengembangan HDFS oleh Apache didasarkan pada konsep Google File System (GFS). Oleh karena itu, adanya kemiripan dengan Google File System baik itu dari segi rancangan logis, susunan fisik, dan cara bekerja.

GFS adalah jenis media penyimpanan data sebagaimana hard disk. Namun pada GFS menyimpan data dengan terdistribusi pada komputer di jaringan yang sama. Sementara itu, komputer-komputer yang terintegrasi di dalamnya sudah saling berjejaring, dapat saling berkomunikasi, dan saling bertukar data. Karena data dapat didistribusikan dan disimpan, GFS mampu menyimpan data dengan ukuran sangat besar yang mana tidak akan cukup pada hard drive terbesar sekalipun. Pengaruh adanya HDFS yaitu untuk mendukung ukuran blok yang besar dan optimasi data lokal untuk mengurangi input/output jaringan4.

Sistem file terdistribusi adalah sistem file yang memecah-mecah data dan menyimpannya didistribusikan di sekelompok banyak komputer, daripada menyimpannya di satu lokasi atau di media penyimpanan lainnya. HDFS merupakan lapisan sistem file dengan basis Java yang toleran terhadap kesalahan, terdistribusi, dan dapat diskalakan untuk penyimpanan data Hadoop yang mendukung ukuran blok yang besar, mengoptimalkan data lokal dan mengurangi I/O pada jaringan. HDFS pada dasarnya merupakan direktori tempat data yang disimpan dapat bekerja sebagaimana spesifikasi Hadoop. Data disimpan dalam cluster dengan banyak jumlah node komputer atau server. Setiap node sudah memiliki Hadoop. Sebagai sistem file terdistribusi, HDFS membantu menangani sejumlah besar data yang disimpan dalam kelompok seperti Yahoo!. Cluster Hadoop bertenaga. Yahoo! memiliki sekelompok Hadoop yang terdiri dari 3500 komputer yang memproses 25 petabyte data (sekitar 26 juta gigabyte). Tujuan dari sistem penyimpanan terdistribusi

 HDFS adalah untuk membagi-bagi file ukuran besar menjadi lebih kecil kemudian mendistribusikannya ke seluruh cluster untuk pemrosesan paralel. HDFS berbeda dari sistem file terdistribusi lainnya.

Gambar Skema HDFS
Gambar Skema HDFS

1.2  Fitur-Fitur HDFS

Dirangkum dari MTI 5 HDFS memiliki beberapa fitur diantaranya yaitu.

  • Cocok untuk menyimpanan secara terdistribusi, pengelolaan dan memroproses data dalam jumlah besar.
  • Hadoop memberikan antarmuka perintah agar dapat berhubungan dengan HDFS.
  • Heartbeat memudahkan untuk memeriksa status cluster Anda.
  • Diakses melalui streaming MapReduce.
  • HDFS menyediakan izin file dan otentikasi
  • Mengidentifikasi dan memperbaiki kesalahan 
  • Menghitung lokasi yang berdekatan dengan data dan mengurangi lalu lintas jaringan serta meningkatkan throughput.

1.3  Keunggulan HDFS

Fault ToleranceSetiap blok digandakan di beberapa mesin
SpaceRuang yang mudah ditambahkan
ScalabilityMudah dilakukan pengukuran
FlexibilityFleksibel untuk semua jenis data
Tabel Keunggulan HDFS

1.4  Kapan Menggunakan Hadoop?

Beberapa kondisi cocok menggunakan Hadoop seperti

  • Melakukan proses dengan jumlah data yang besar seperti melakukan pencarian, proses log, data gudang, analisa data
  • Lebih cocok untuk membaca data
  • Untuk batch processing

Sedangkan Hadoop kurang cocok digunakan untuk kondisi

  • Latency data yang rendah
  • Tidak cocok untuk menulis dan memperbarui data
  • Banyak data memiliki ukuran kecil
  • Untuk stream processing

1.5  Model dan Struktur HDFS

Tugas HDFS dalam menyimpan data adalah membagi data menjadi potongan data 64MB dan menyimpannya pada node yang didistribusikan dalam sebuah cluster.6 Pengguna dapat mengubah ukuran blok sesuai kebutuhan. Sekalipun data diiris dan disebar, pengguna dapat melihat bahwa data tersebut masih terlihat seolah-olah sedang mengakses file di area penyimpanan. HDFS berbeda dari sistem file lain karena arsitekturnya memungkinkan Anda meningkatkan jumlah node sesuai kebutuhan. Anda dapat meningkatkan ukuran file tanpa batas dengan mengabstraksi satu file yang berada di beberapa node.

Model dan Struktur HDFS
Model dan Struktur HDFS

Komponen utama dari HDFS diberi nama namenode dan datanode. Node nama merupakan node yang dijalankan sebagai master dan node data merupakan node didalam cluster yang dijalankan sebagai slave. Nodename bertindak untuk menyimpan, mengatur, dan mengatur blok data yang disimpan di node yang didistribusikan di dalam cluster, dan node data menyimpan blok data yang dialamatkan kepadanya dan menamai statusnya. secara teratur7. Oleh karena itu, Namenode bertindak seperti manajer yang mengelola dan mengontrol cluster. Sebuah node data, di sisi lain, seperti pekerja yang bertanggung jawab untuk menyimpan data dari node nama dan menjalankan perintah. Node data menyimpan dan mengambil blok ketika diminta oleh aplikasi dari klien dan nama node. Node data juga secara berkala melaporkan ke node nama dengan daftar blok yang disimpan di node data.  

Semua data yang disimpan di HDFS dibagi dengan banyak data. Salinan (faktor replikasi) adalah 3 secara default. Ini berarti bahwa satu file akan disimpan pada tiga node data yang berbeda. Oleh karena itu, jika satu simpul data rusak, Anda dapat mengambil file dari simpul data lain. Node data mengirimkan sinyal ke node nama setiap 3 detik (detak jantung) bahwa node data masih aktif. Namun, jika Namenode tidak menerima sinyal dari node data dalam waktu 10 menit, maka node data tersebut diklaim rusak atau tidak bekerja dan semua permintaan baca/tulis dirubah ke node yang lain. Kehadiran node nama detak jantung memungkinkan Anda untuk menentukan dan mengontrol keadaan seluruh cluster.

1.4 Cara kerja HDFS

Suatu kluster pada HDFS terbangun dari namenode dan datanode. Inode mewakili file dan menyimpan atribut yaitu seperti izin, waktu terakhir perubahan dan waktu akses, jumlah alokasi dari namespace dan diskspace. Bagian isi pada data dipecah membentuk beberapa blok yang pada tiap bloknya digandakan pada beberapa datanodes. Bagian namenode rajin memantau kuantitas duplikat dari blok file. Tujuan hal ini yaitu disaat salinan blok file terdapat kehilangan ataupun kerusakan maka namenode menggandakannya menuju datanode yang lain yang bekerja dengan baik.

Proses penyimpanan data di komputer dilakukan dengan cara menuliskan instruksi pada console, selanjutnya file tersebut akan dikirimkan menuju kluster kemudian disimpan di nodenode yang tertebar pada kluster yang bertugas sebagai datanode. Rinciannya adalah ketika instruksi penyimpanan dijalankan, klien melakukan komunikasi dengan nama node untuk memberikan informasi bahwa terdapat file yang akan disimpan di dalam HDFS dan juga meminta alamat dari lokasi data node yang dibuka untuk menyimpan data. Kumpulan data node yang ada kemudian client akan mengirimkan data langsung ke datanode. Setelah data terkirim, telah dipecah menjadi beberapa bagian blok data dengan ukuran yang sesuai dengan pengaturan. Blok data tersebut selanjutnya disimpan oleh setiap data node. Setelah blok data diperoleh dan disimpan, setiap datanode akan menyampaikan laporan ke namenode bahwa data telah masuk dan disimpan secara normal.

Proses membaca data sama seperti pada penyimpanan data, yaitu dilakukan dengan mengetikkan command line. Ketika perintah dijalankan, klien berkomunikasi dengan node nama untuk mendapatkan nama dan juga alamat node data yang perlu diakses dengan tujuan mendapatkan data sebagaimana yang diinginkan. Setelah mengambil informasi, klien langsung mengakses node data terkait untuk mendapatkan data. Pada tahap akhir, data tersebut akan ditunjukkan ke klien sebagaimana yang ditentukan.

2. MAP REDUCE

2.1  Pengertian

MapReduce pertama kali diperkenalkan oleh Google pada tahun 2004 melalui publikasi ilmiah. MapReduce merupakan model pemrograman yang diterbitkan oleh Google dengan tujuan memproses data dalam jumlah yang besar dengan cara distribusi dan paralel pada sekelompok komputer. Garis besarnya MapReduce dapat dibagi menjadi dua bagian tugas, yaitu tugas map dan tugas reduce.8 Dua hal ini dipecah oleh setiap komputer dalam satu cluster (sekelompok komputer yang saling berhubungan) dan berjalan paralel, independen satu sama lain. Tugas dari Map adalah menghimpun informasi yang berasal dari pecahan-pecahan data yang ditambahkan ke setiap mesin di cluster dan hasilnya ke tugas Reduce untuk diolah lebih lanjut.

Karena program MapReduce pada dasarnya paralel, mereka menyediakan analisis data yang ekstensif kepada siapa saja yang memiliki cukup komputer untuk menyelesaikannya. MapReduce juga hadir untuk memecahkan masalah pemrosesan data besar. MapReduce memanfaatkan HDFS sebagai akses file dan untuk menyimpan hasil reduce. Model MapReduce menyederhanakan pemrosesan paralel dengan merangkum kompleksitas yang terkait dengan operasi sistem terdistribusi. Proses melewatkan pekerjaan dari klien ke operasi Mapreduce Map dilakukan dengan cara memecah file input secara paralel menjadi bagian yang disebut filesplis. Saat tugas reduksi berjalan, proses reduksi menerima input yang dibagi menjadi beberapa file di semua node yang digunakan saat menjalankan tugas pemetaan. Ini diikuti oleh fase tambah, yang menambahkan semua data yang tersedia secara lokal ke file. File digabungkan dan diurutkan sehingga pasangan kunci / nilai untuk kunci tertentu berdekatan, yang menyederhanakan proses reduksi yang sebenarnya. Artinya, ia membaca file secara berurutan dan berulang kali mengirimkan nilai kunci yang terdeteksi

 Contoh Map Reduce
Gambar Contoh Map Reduce 9

MapReduce dibagi menjadi empat tahap 10 diantaranya yaitu.

  1. Splitting

Hal ini dilakukan dengan membagi data input dari pengguna MapReduce menjadi beberapa bagian kecil. Dalam kondisi ideal data dipecah menjadi beberapa bagian dengan ukuran maksimum 128MB.

  • Mapping

Pemetaan adalah salah satu fase terpenting dari MapReduce. Blok data yang didekomposisi dipetakan untuk menghasilkan pasangan kunci/nilai perantara. Seperti pada wordcount, data dengan kata “Dear Bear River” akan diproses dengan mendapatkan pasangan key-value Dear:1, Bear:1, dan River:1. Pada tahap ini, satu atau lebih komputer pekerja mungkin memproses beberapa blok berbeda. Semakin bidang paralel banyak digunakan, maka waktu yang dibutuhkan untuk memproses semua data semakin cepat.

  • Shuffling

Fase pemetaan dapat dijalankan pada satu atau lebih komputer. Menghasilkan pasangan kunci / nilai yang diperoleh dari mapper yang dapat didistribusikan ke beberapa mesin. Namun jika pengolahan data yang diinginkan adalah perhitungan dengan menggunakan kunci yang setara, maka data yang menggunakan kunci yang sama harus dalam tahap reduksi pada mesin yang sama. Karena itu, tugas fase pencampuran adalah menggabungkan satu atau lebih kunci yang berbeda pada mesin tertentu untuk mempermudah agregasi. Contoh di foto menunjukkan bahwa semua bareword yang dihasilkan selama fase pemetaan berada di mesin yang sama. Seperti kata lainnya.

  • Reducing

Fase reducing bertanggung jawab untuk menggabungkan terhadap semua hubungan intermediary key-value dengan kunci yang setara. Sebagaimana Gambar 1 pasangan key-value Bear:1 dan Bear:1 disatukan sehingga reducer akan menghasilkan output Bear:2 sebagaimana pada gambar.

2.2  Penggunaan MapReduce

Secara umum pemrogram aplikasi MapReduce memerlukan hal berikut dalam menganalisa data.

  1. File Input

File input dapat berupa file teks yang disimpan pada media penyimpanan terdistribusi sebagaimana Google File System atau Hadoop File System. Input yang digunakan untuk melakukan tahap mapping dan reducing adalah dataset berupa pasangan key/value11.

  • Fungsi Map and Reduce

Disaat membangun program MapReduce yang berjalan paralel, pemrogram menyediakan tugas khusus yang berguna untuk memproses map dan mengurangi jumlah fase. Semua masalah yang terkait dengan penjadwalan dan mekanisme penanganan kesalahan ditangani oleh kerangka kerja MapReduce yang digunakan.

2.3  Desain dan Struktur

Pada MapReduce tidak ditemukan kolom dan baris sebagaimana yang terdapat pada database. Akan tetapi dalam bentuk data berupa pasangan key/value. Dengan pengertian Key atau Kunci merupakan informasi yang didapat oleh pengguna, sedangkan value atau nilai merupakan data yangberhubungan dengan key tersebut12. MapReduce memproses data dalam jumlah besar sehingga perlu membagi data menjadi beberapa bagian dan kemudian mendistribusikannya ke setiap komputer dalam cluster. Selanjutnya, proses pemetaan dan pengurangan harus didistribusikan ke semua komputer dan berjalan secara paralel. Hasil akhir juga didistribusikan dan disimpan. MapReduce dirancang sedemikian sederhana sehingga programmer hanya perlu menulis dua program: proses Map dan perhitungan atau prosedur yang dijalankan oleh proses Reduce. Oleh karena itu, programmer tidak perlu khawatir tentang cara mengiris, memparalelkan, dan mengumpulkan data untuk didistribusikan ke setiap komputer. Semua aktivitas ini ditangani otomatis oleh MapReduce yang berjalan di GFS.

Gambar Skema MapReduce
Gambar Skema MapReduce

Pemrogram yang menjalankan MapReduce membuat program MapFunction dan ReduceFunction. Fungsi peta adalah program yang berisi perhitungan-perhitungan yang berhubungan dengan proses peta, sedangkan fungsi reduksi berisi perhitungan-perhitungan yang dilakukan oleh proses reduksi. Tugas dari fungsi peta adalah membaca input berupa key-value pair dan kemudian output yang dihasilkan berupa key-value pair. Pasangan kunci/nilai yang diperoleh dari fungsi peta disebut pasangan kunci/nilai perantara. Fungsi reduksi kemudian membaca pasangan kunci/nilai perantara dari fungsi peta dan mengelompokkannya berdasarkan kunci tersebut. Sederhananya setiap nilai yang mempunyai kunci sama akan dikumpulkan kedalam satu kelompok. Fungsi adanya Reduce yaitu membuahkan hasil keluaran berupa pasangan kunci/nilai.

STUDI KASUS

Implementasi Hadoop: Studi Kasus Pengolahan Data Peminjaman Perpustakaan Universitas Kristen Petra Jurnal Infra, Vol. 3, No. 2, 2015

Implementasi Hadoop dimaksudkan untuk mengolah data peminjam dari perpustakaan UK Petra. Ini diimplementasikan melalui lima kueri yang digunakan untuk memproses data perpustakaan. Lima query dirancang untuk mencari judul, jenis file, jenis koleksi, alamat, dan buku di perpustakaan besar. Langkah pertama adalah menyiapkan program pengolah data Hadoop yang mencakup

  1. Menginstal dan konfigurasikan namenode maupun datanode.
  2. Mengelola data perpustakaan dalam format lebih sederhana.
  3. Memperbesar ukuran data yang dipinjam dan masukkan dalam HDFS.
  4. Membuat 5 program dengan berbagai masalah.

 Selanjutnya, jalankan program mapreduce pada Hadoop baru untuk memberikan hasil analisis dari kumpulan data yang besar. Langkah terakhir adalah perbandingan untuk menguji kinerja Hadoop saat memproses data dalam jumlah besar, meliputi beberapa aspek seperti kecepatan, beban CPU, dan konsumsi memori.

Gambar Desain Jaringan Implementasi Hadoop
Gambar Desain Jaringan Implementasi Hadoop

Sistem Hadop diimplementasikan di Program Penelitian Teknik Informatika, Institut Multimedia, Universitas Kristen Petra. Dari segi perangkat keras, komputer yang digunakan terhubung dengan sakelar laboratorium menggunakan kabel tipe UTP dengan kecepatan maksimum 100 Mbps.

Gambar Desain Jaringan Implementasi Hadoop
Gambar Desain Jaringan Implementasi Hadoop

Sebelum menerapkan hadoop mareduce pada data yang dipinjam dari perpustakaan, perlu untuk membersihkan file data perpustakaan sehingga dalam implementasi Hadoop lebih mudah.Hasilnya adalah kinerja Hadoop dari waktu ke waktu lebih baik daripada menggunakan SQL saat bekerja dengan data besar, namun tidak cocok untuk data kecil. Semakin banyaknya komputer yang Anda gunakan untuk mengimplementasikan Hadoop, semakin cepat aplikasi yang akan berjalan. Saat mengimplementasikan data pinjaman perpustakaan, blok 128MB berjalan lebih lambat daripada blok 28MB dan 512MB yang dicoba dalam implementasi ini. Saat bekerja dengan data kecil, jangan gunakan hadoopmapreduce karena menyediakan waktu yang cukup lama dalam kisaran 55883 hingga 101,34 detik. Implementasi Hadoop MapReduce meningkatkan jumlah node dan meningkatkan kinerja waktu pemrosesan. Dalam implementasinya, mapreduce tidak memiliki ukuran blok tertentu dalam memberikan performa yang baik untuk menjalankan aplikasi. Untuk mendapatkan performa yang baik perlu adanya percobaan terhadap variasi jumlah data dan variasi ukuran block.

KESIMPULAN HDFS MAP DAN MAPREDUCE

Kesimpulan materi dan implementasi dari HDFS dan MapReduce yaitu

  1. Hadoop Distribution File System merupakan sistem penyimpanan data secara terdistribusi yang dapat melakukan penyimpanan data dalam jumlah besar. HDFS didasarkan pada konsep Sistem File Google yang diterbitkan oleh perusahaan Google. HDFS memiliki kapasitas besar dan sistem terdistribusi yang andal. Namun, ini dikenal sangat sederhana, mudah dimengerti, dan mudah digunakan.
  2. MapReduce membantu memecahkan masalah data besar berbasis Java dan open source secara paralel di ribuan komputer. MapReduce hadir untuk memecahkan masalah pemrosesan data besar. Model MapReduce menyederhanakan pemrosesan paralel dengan merangkum kompleksitas yang terkait dengan operasi sistem terdistribusi.
  3. Kinerja Hadoop berdasarkan waktu lebih unggul daripada SQL dalam hal pemrosesan data besar, namun tidak dalam hal pemrosesan data kecil. Semakin banyaknya komputer yang digunakan untuk mengimplementasikan Hadoop, semakin cepat aplikasi MapReduce Anda akan berjalan.

Asyabab

  1. Munawar, Zen &Putri, Novianti Indah. 2020. Keamanan Jaringan Komputer Pada Era Big Data. Jurnal Sistem Informasi – J-SIKA. Vol 2 No 1[]
  2. Karya, Gede & Moertini, Veronica. 2017. Eksplorasi Teknologi Big Data Hadoop untuk Sistem Aplikasi Berbasis Komunitas Studi Kasus: Aplikasi Pembukuan UMK. Jurnal Rekayasa Sistem dan Teknologi Informasi. Vol. 1 No. 2[]
  3. Taqwin, P.A. 2018. Implementasi Metode Mapreduce Pada Big Data Berbasis Hadoop Distributed File System. e-Proceeding of Engineering: Vol.5, No.1[]
  4. Holmes, A. (2012). Hadoop in practice. Shelter Island, NY: Manning[]
  5. MTI, 2018. Hadoop Distributed File System (HDFS). https://mti.binus.ac.id/2018/06/28/hadoop-distributed-file-system-hdfs/[]
  6. Widy, S. (2017, August 21). Hadoop distributed file system. Medium. https://medium.com/skyshidigital/hadoop-distributed-file-system-c1f5c29e9e6e[]
  7. ProjectDescription – Hadoop Wiki. (2014, January 13). Retrieved April 14, 2017, from https://wiki.apache.org/hadoop/ProjectDescription[]
  8. Prabowo, Sidik. 2017. Implementasi Algoritma Penjadwalan untuk pengelolaan Big Data dengan Hadoop. Ind Journal on Computing. Vol. 2, No 2.[]
  9. Wjaya, V. (2013, February 3). MapReduce: Besar dan Powerful, tapi Tidak Ribet. Retrieved April 22, 2017, from http://www.teknologibigdata.com/2013/02/mapreduce-besar-dan-powerful-tapi-tidak.html[]
  10. Putra, Hadian Mandala, dkk. 2021. Analisa Performa Klastering Data Besar pada Hadoop. Infotek: Jurnal Informatika dan Teknologi Vol. 4, No. 2[]
  11. Dean, E., & Ghemawat, S. (2004). MapRednce: Simplified Data Processing onLarge Clusters.[]
  12. Shenoy, A. (2014). Hadoop Explained. Packt Publishing Ltd.[]

Leave a Reply

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