Apa itu Apache Hadoop?,

Kemungkinan bagi anda tidak semua mengetahui apa itu Hadoop. Namun jika anda adalah seseorang yang menggeluti dunia IT, tentu istilah ini sudah tidak asing lagi bagi anda, karena pembahasan mengenai Hadoop sudah terdengar dimana-mana. Bahkan sudah banyak prinsipal IT terkemuka yang memasukkan Hadoop ke dalam portofolio produk mereka, seperti Microsoft, Oracle, IBM, dan lain-lain.

Lalu sebenarnya apa sih Apache Hadoop itu?, karena setiap kali kita mendengar istilah tersebut, pasti akan selalu dihubungkan dengan data yang berjumlah besar (Big Data).

Jadi, Apache Hadoop sendiri merupakan sebuah software platform open source dibawah lisensi Apache, yang dibangun dengan bahasa pemrograman Java untuk mendukung aplikasi yang berjalan pada data yang berjumlah besar (Big Data). Software ini dapat menghubungkan beberapa komputer sehingga bisa saling bekerja sama dan sinkron dalam menyimpan dan mengolah data sebagai satu kesatuan.

Nah, itu tadi sedikit penjelasan mengenai apa itu Hadoop. Selanjutnya kita akan membahas, Bagaimana cara kerja dari Apache Hadoop itu sendiri? Framework Hadoop tersusun atas 4 modul atau komponen utama, yakni Hadoop Distributed File System (HDFS), Hadoop Common, Hadoop MapReduce, dan Hadoop YARN, yang masing-masing dari komponen tersebut memiliki cara kerja yang berbeda-beda. Nah, berikut ini penjelasannya:

1. Hadoop Common Hadoop Common adalah berisi libraries dan utilities yang dibutuhkan oleh modul Hadoop lainnya. Hadoop ini berperan untuk menyediakan file sistem yang digunakan untuk memulai hadoop.

2. Hadoop Distributed File System (HDFS) Hadoop Distributed File System (HDFS) adalah sebuah tempat atau direktori di komputer dimana data hadoop disimpan. Namun, tempat atau direktori ini di “format” supaya bisa bekerja sesuai dengan spesifikasi dari Hadoop.

Sebuah kluster HDFS terdiri dari NameNode, yang mengelola metadata dari kluster, dan DataNode yang menyimpan data/file. File dan direktori diwakili pada NameNode oleh inode. Inode menyimpan atribut seperti permission, modifikasi dan waktu akses, atau kuota namespace dan diskspace.

Isi file dibagi menjadi blok-blok file(biasanya 128 MB), dan setiap blok file tersebut direplikasi di beberapa DataNodes. Blok file disimpan pada sistem file lokal dari DataNode. Namenode aktif memonitor jumlah salinan/replika blok file. Ketika ada salinan blok file yang hilang karena kerusakan pada DataNode, NameNode akan mereplikasi kembali blok file tersebut ke datanode lainnya yang berjalan baik. NameNode mengelola struktur namespace dan memetakan blok file pada datanode.

3. Hadoop MapReduce Hadoop MapReduce adalah sebuah model programming/algoritma untuk pengolahan data skala besar dengan komputasi secara terdistribusi. Jadi, Hadoop ini bertugas membagi data yang besar ke dalam potongan lebih kecil dan mengatur mereka kedalam bentuk tupel untuk pemrosesan paralel.

Tupel adalah kombinasi antara key dan value-nya, dapat disimbolkan dengan notasi : "(k1, v1)". Dengan pemrosesan bersifat paralel tersebut, tentunya akan meningkatkan kecepatan dan keandalan komputasi pada sistem klustering. MapReduce terdiri atas tiga tahap, yaitu tahap map, shuffle, dan terakhir reduce. Shuffle dan reduce digabungkan kedalam satu tahap saja yaitu tahap reduce.

     a. Tahap Map berfungsi untuk memproses data inputan yang umumnya berupa file yang tersimpan dalan HDFS (dapat di baca di Sistem file terdistribusi), inputan tersebut kemudian diubah menjadi tuple yaitu pasangan antara key dan value-nya.

     b. Tahap reduce, memproses data inputan dari hasil proses map, yang kemudian dilakukan tahap shuffle dan reduce yang hasil data set baru-nya disimpan di HDFS kembali.

4. Hadoop Yet Another Resource Negotiator (YARN) Hadoop Yet Another Resource Negotiator (YARN) adalah platform untuk manajemen resource/sumber daya yang bertanggung jawab untuk mengelola resources dalam clusters dan Job scheduling Sub-proyek kunci dari arsitektur proyek Apache Hadoop 2, terkadang Hadoop ini disebut juga NextGen MapReduce (MRv2) - Generasi terbaru MapReduce, karena YARN lahir sebagai bentuk perbaikan dari MapReduce ntuk memisahkan dua tanggung jawab utama dari Job Tracker atau Task Tracker menjadi beberapa entitas yang terpisah.

     a. Global Resource Manager di node master, yang berfungsi mengatur semua resource yang digunakan aplikasi dalam sistem.

     b. Application Master di setiap aplikasi, yang berfungsi untuk negosiasi resource dengan Resource Manager dan kemudian bekerja sama dengan Node Manager untuk mengeksekusi dan memonitor tasks.

     c. Node Manager di Agen-Framework setiap node slave, yang bertanggung jawab terhadap Container, dengan memantau penggunaan resource/sumber daya dari container (cpu, memori, disk, jaringan) dan melaporkannya pada Resource Manager.

     d. Container di setiap aplikasi yang jalan di Node Manager, sebagai wadah penyimpanan data/file.

Namun seiring berjalannya waktu, framework hadoop tidak hanya tersusun atas empat modul tersebut namun sekarang, juga merupakan kumpulan modul open source seperti Hive, Pig, Oozie, Zookeeper, Flume Sqoop, Mahout, Hbase, Ambari, Spark, dsb.