Hadoop - Pendahuluan

Hadoop adalah kerangka kerja sumber terbuka Apache yang ditulis dalam java yang memungkinkan pemrosesan terdistribusi dari kumpulan data besar di seluruh kluster komputer menggunakan model pemrograman sederhana. Aplikasi kerangka kerja Hadoop bekerja di lingkungan yang menyediakan penyimpanan dan komputasi terdistribusi di seluruh kluster komputer. Hadoop dirancang untuk meningkatkan dari satu server ke ribuan mesin, masing-masing menawarkan komputasi dan penyimpanan lokal.

Arsitektur Hadoop

Pada intinya, Hadoop memiliki dua lapisan utama yaitu -

  • Pengolahan / Lapisan komputasi (MapReduce), dan
  • Lapisan penyimpanan (Hadoop Distributed File System).

MapReduce

MapReduce adalah model pemrograman paralel untuk menulis aplikasi terdistribusi yang dirancang di Google untuk pemrosesan yang efisien dari sejumlah besar data (kumpulan data multi-terabyte), pada cluster besar (ribuan node) perangkat keras komoditas dengan cara yang andal dan toleran terhadap kesalahan. Program MapReduce berjalan di Hadoop yang merupakan kerangka kerja sumber terbuka Apache.

Sistem File Terdistribusi Hadoop

Sistem File Terdistribusi Hadoop (HDFS) didasarkan pada Sistem File Google (GFS) dan menyediakan sistem file terdistribusi yang dirancang untuk dijalankan pada perangkat keras komoditas. Ini memiliki banyak kesamaan dengan sistem file terdistribusi yang ada. Namun, perbedaan dari sistem file terdistribusi lainnya cukup signifikan. Ini sangat toleran terhadap kesalahan dan dirancang untuk digunakan pada perangkat keras berbiaya rendah. Ini memberikan akses throughput tinggi ke data aplikasi dan cocok untuk aplikasi yang memiliki kumpulan data besar.

Terlepas dari dua komponen inti yang disebutkan di atas, kerangka kerja Hadoop juga mencakup dua modul berikut -

  • Hadoop Common - Ini adalah pustaka dan utilitas Java yang dibutuhkan oleh modul Hadoop lainnya.

  • Hadoop YARN - Ini adalah kerangka kerja untuk penjadwalan pekerjaan dan manajemen sumber daya cluster.

Bagaimana Cara Kerja Hadoop?

Ini cukup mahal untuk membangun server yang lebih besar dengan konfigurasi berat yang menangani pemrosesan skala besar, tetapi sebagai alternatif, Anda dapat mengikat banyak komputer komoditas dengan CPU tunggal, sebagai sistem terdistribusi fungsional tunggal dan secara praktis, mesin berkerumun dapat membaca kumpulan data. secara paralel dan memberikan throughput yang jauh lebih tinggi. Selain itu, ini lebih murah daripada satu server kelas atas. Jadi, ini adalah faktor motivasi pertama di balik penggunaan Hadoop yang dijalankan di seluruh mesin yang dikelompokkan dan berbiaya rendah.

Hadoop menjalankan kode di sekumpulan komputer. Proses ini mencakup tugas-tugas inti berikut yang dilakukan Hadoop -

  • Data awalnya dibagi menjadi direktori dan file. File dibagi menjadi blok berukuran seragam 128M dan 64M (sebaiknya 128M).

  • File-file ini kemudian didistribusikan ke berbagai node cluster untuk diproses lebih lanjut.

  • HDFS, yang berada di atas sistem file lokal, mengawasi pemrosesan.

  • Blok direplikasi untuk menangani kegagalan perangkat keras.

  • Memeriksa bahwa kode berhasil dijalankan.

  • Melakukan penyortiran yang terjadi antara peta dan mengurangi tahapan.

  • Mengirim data yang diurutkan ke komputer tertentu.

  • Menulis log debugging untuk setiap pekerjaan.

Keuntungan dari Hadoop

  • Kerangka kerja Hadoop memungkinkan pengguna untuk menulis dan menguji sistem terdistribusi dengan cepat. Ini efisien, dan secara otomatis mendistribusikan data dan bekerja di seluruh mesin dan pada gilirannya, menggunakan paralelisme yang mendasari inti CPU.

  • Hadoop tidak mengandalkan perangkat keras untuk memberikan toleransi kesalahan dan ketersediaan tinggi (FTHA), melainkan pustaka Hadoop itu sendiri telah dirancang untuk mendeteksi dan menangani kegagalan pada lapisan aplikasi.

  • Server dapat ditambahkan atau dihapus dari cluster secara dinamis dan Hadoop terus beroperasi tanpa gangguan.

  • Keuntungan besar lainnya dari Hadoop adalah selain sebagai open source, ia kompatibel di semua platform karena berbasis Java.