hadoop ecosystem
Big Data

Mengenal Ekosistem Apache Hadoop

Sejak tahun 2008 Hadoop berkembang lebih besar tidak hanya terdiri dari HDFS dan MapReduce seperti yang telah bahas di artikel sebelumnya

Banyak framework maupun tool yang berjalan di atas Hadoop sehingga Hadoop yang lebih dikenal dengan istilah Ekosistem Hadoop (Hadoop Ecosystem)

Kali ini kita akan lebih mengenal ekosistem dari Apache Hadoop seperti Hive, Pig, Sqoop, Flume, Mahout, HBase, Spark, Oozie, Zookeeper, dan lain sebagainya

Ekosistem Hadoop terdiri dari seperti data storage, resource management, data processing, data ingestion, stream processing, machine learning, scheduler dan coordinator

https://data-flair.training

Data Storage

Kita telah membahas tentang HDFS di artikel Hadoop, HDFS dan MapReduce. HDFS merupakan layer terbawah dari ekosistem Hadoop yang mampu menyimpan data secara terdistribusi

HDFS cocok digunakan untuk penyimpanan data besar yang dapat dipecah-pecah menjadi lebih kecil. Selengkapnya tentang HDFS silahkan baca kembali artikel Hadoop, HDFS dan MapReduce

Selain HDFS, terdapat storage lainnya yang merupakan database NoSQL yang dikembangkan di atas HDFS yang disebut dengan HBase

Apache HBase adalah NoSQL Database yang berorientasi pada kolom yang bentuk penyimpanan berupa Key-Value. Key terdiri atas Row Key, Column Family, Column, dan Timestamp

Resource Management

YARN (Yet Another Resource Negotiator) dikembangkan di Hadoop versi 2.x yang berfungsi untuk mengelola sumber daya di seluruh kluster

Pada Hadoop versi 1.x, MapReduce berfungsi untuk resource management dan data processing. Pada Hadoop versi 2.x, tugas resource management dihandel oleh YARN

https://acadgild.com/blog/10-big-differences-between-hadoop1-and-hadoop2

YARN terdiri dari 3 komponen penting yaitu resource manager, nodes manager dan application manager

Data Processing

Data beberapa engine untuk pemrosesan data yang berjalan di atas HDFS seperti Hive dan Pig

Hive adalah engine pemrosesan data yang berbentuk SQL sedangkan Pig adalah engine pemrosesan data yang berbentuk scripting

Hive dikembangkan di Facebook dan merupakan high level programming di atas MapReduce. Hive digunakan untuk memproses data terstruktur dalam sistem terdistribusi. Ada 3 mekanisme manajemen data di Hive yaitu : Table, Partition dan Bucket

Sama seperti Hive, Pig juga merupakan high level programming di atas MapReduce.

Pig dikembangkan di Yahoo dan berbentuk scripting yang menggunakan Pig Latin Language. Pig merupakan pemrograman berparadigma prosedural

Data Ingestion

Data ingestion merupakan peran untuk memindahkan data dari relational database ke dalam Hadoop

Data ingestion dapat digunakan untuk batch dan stream data. proses ingestion juga dapat diotomasi perpindahan datanya

Ada 2 tool yang sering digunakan yaitu Sqoop dan Flume. Sqoop cocok digunakan untuk batch data seperti data transaksi, sistem informasi, dan lain sebagainya

Flume cocok digunakan untuk stream data seperti sensor data, log file, click stream, social media dan lain sebagainya

Stream Processing

Hadoop cocok digunakan untuk memproses data batch bukan stream data. Karena Hadoop berkembang, beberapa tool stream processing hadir untuk menutupi hal ini

Spark Streaming merupakan salah satu engine untuk pemrosesan stream data yang sangat populer

Saat ini Spark Streaming dikembangkan menjadi Spark Structured Streaming yang support untuk mengolah dataframe. Spark support beberapa bahasa seperti Scala, Java, Python dan R

Ilustrasi stream data dapat dilihat dari gambar berikut

https://databricks.com/blog/2016/07/28/structured-streaming-in-apache-spark.html

Machine Learning

Ada beberapa engine untuk Machine learning (ML) seperti Spark MLLib dan Apache Mahout

Tool ML dapat digunakan untuk masalah clustering, classification, recommendation dan lain sebagainya

Scheduler

Scheduler adalah engine yang digunakan untuk penjadwalan job atau tugas. Beberapa tool untuk scheduling yang cukup populer yaitu Apache Airflow dan Apache Oozie

Dalam Apache Airflow, Kumpulan task yang dijalankan di Airflow disebut DAG – Directed Acyclic Graph

Operator dalam GAD digunakan untuk menentukan apa yang harus dilakukan oleh task. Operator yang sering digunakan adalah BashOperator dan PythonOperator

Coordinator

Zookeeper digunakan sebagai koordinator untuk menejemen kluster. Dengan Zookeeper koordinasi antar kluster menjadi lebih mudah untuk dimonitoring

Cukup sekian yang dapat saya share tentang ekosistem Hadoop dan tool-tool yang berjalan diatas Hadoop. Semoga suatu saat ada kesempatan untuk melakukan Hands-on ekosistem Hadoop 😀

Leave a Reply

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