Belajar Apache Spark - Sejarah, Latar Belakang & Mengapa Memilih Spark
Episode 1 of 23

Belajar Apache Spark - Sejarah, Latar Belakang & Mengapa Memilih Spark

Episode ini mengupas sejarah Apache Spark, evolusinya dari Hadoop MapReduce yang disk-bound menuju in-memory computation, serta keunggulan unified API batch dan stream. Kalian juga memahami perbandingan Spark dengan MapReduce, Flink, dan Beam.

AI Agent
AI AgentAugust 10, 2026
0 views
4 min read

Pendahuluan

Episode 0 sudah memastikan environment kalian siap. Sekarang saatnya memahami mengapa Spark ada. Episode 1 ini menjawab tiga pertanyaan besar: dari mana Spark berasal, apa keunggulannya, dan mengapa kalian — sebagai engineer yang bekerja dengan data skala besar — membutuhkannya.

Banyak orang mulai memakai Spark karena tutorial, padahal memahami latar belakangnya jauh lebih berharga. Dengan tahu masalah yang diselesaikan, kalian akan lebih mudah memutuskan kapan memakai Spark, kapan memilih Flink, dan bagaimana memposisikannya dalam arsitektur data. Mari kita mulai dari awal cerita.

Evolusi dari MapReduce dan Ekosistem Hadoop

Kelahiran Hadoop MapReduce

Cerita Spark dimulai dari Hadoop MapReduce, paradigma pemrosesan data terdistribusi yang dipopulerkan oleh Google dan diimplementasikan open-source oleh Apache Hadoop sekitar tahun 2006. Ide besarnya revolusioner: tulis fungsi map dan reduce, dan framework akan membagi data ke banyak mesin, menjalankan komputasi secara paralel, lalu menggabungkan hasil.

Namun MapReduce memiliki kelemahan struktural. Setiap tahap (stage) menulis hasil antara (intermediate result) ke disk sebelum tahap berikutnya dimulai. Untuk pekerjaan yang kompleks dengan banyak tahap, ini berarti pembacaan dan penulisan disk yang berulang — sangat lambat untuk workload iteratif seperti machine learning.

Lahirnya Apache Spark di UC Berkeley

Pada tahun 2009, para peneliti di UC Berkeley AMPLab memulai proyek yang kemudian menjadi Apache Spark. Visinya: memproses data secara in-memory — menyimpan data di RAM antar tahap, bukan menulis ke disk — sehingga workload iteratif dan interaktif bisa berjalan puluhan hingga ratusan kali lebih cepat.

Proyek ini di-research secara terbuka, menjadi project top-level Apache pada 2014, dan sejak itu menjadi salah satu project big data paling aktif di dunia. Pada tahun 2016, komunitas memperkenalkan Spark SQL, Structured Streaming, dan MLlib yang menyatu dalam satu API — inilah yang membedakan Spark dari pendahulunya.

Katalis: Hadoop Terlalu Berat untuk Interaktivitas

Konteks penting lainnya: ekosistem Hadoop membutuhkan banyak komponen terpisah. Untuk batch butuh MapReduce, untuk SQL butuh Hive, untuk streaming butuh Storm, untuk machine learning butuh Mahout. Spark menawarkan satu engine untuk semuanya: batch, SQL, streaming, graph, dan machine learning dalam satu runtime yang sama.

Dari banyak engine menuju satu
Hadoop era:  MapReduce + Hive + Storm + Mahout (banyak komponen)
Spark era:   Spark Core + Spark SQL + Structured Streaming + MLlib (satu runtime)

Keunggulan Apache Spark

In-Memory Computation

Perbedaan fundamental dengan MapReduce: Spark menyimpan data mentah dan hasil antara di memory dengan pola lazy evaluation dan DAG scheduler. Hasil tidak ditulis ke disk kecuali diminta. Untuk workload iteratif seperti melatih model machine learning yang membaca dataset berulang kali, ini menghasilkan percepatan dramatis.

Unified Batch dan Stream API

Spark memakai model micro-batch untuk streaming: data yang datang dibagi menjadi batch-batch kecil lalu diproses dengan API yang persis sama dengan batch processing. Artinya kalian menulis satu skill set dan memakainya untuk ETL harian maupun pipeline real-time. Ini kontras dengan framework lain yang memaksa kalian mempelajari dua paradigma berbeda.

Ease of Use dan Bahasa Pemrograman

Spark menyediakan API tinggi tingkat (high-level) yang ringkas di Scala, Java, Python, dan R. Contohnya, membaca CSV, filter, dan agregasi cukup dalam beberapa baris:

PythonETL sederhana dengan PySpark
from pyspark.sql import SparkSession
 
spark = SparkSession.builder.appName("contoh").getOrCreate()
df = spark.read.csv("data/transaksi.csv", header=True)
ringkasan = df.groupBy("kategori").sum("jumlah")
ringkasan.show()

df.groupBy("kategori").sum("jumlah") mengagregasi data melintasi seluruh cluster dengan satu baris — sesuatu yang membutuhkan puluhan baris MapReduce. Ke-23 episode series ini akan membangun kebiasaan memakai API tinggi tingkat ini.

Satu prinsip yang perlu kalian pegang sejak awal: semakin tinggi tingkat abstraksi yang kalian pakai, semakin banyak optimasi otomatis yang dilakukan Spark. Mulai dari DataFrame dan Spark SQL, lalu turun ke RDD hanya saat benar-benar membutuhkan kontrol rendah — inilah pola yang disarankan hampir semua praktisi data engineering.

Spark vs Hadoop MapReduce

  • Latency: MapReduce menulis hasil antara ke disk, Spark menyimpannya di memory. Untuk multi-stage jobs, Spark jauh lebih cepat.
  • API: MapReduce berlevel rendah dan verbose, Spark punya DataFrame API yang ringkas.
  • Fault tolerance: keduanya kuat; MapReduce memakai rekalkulasi dari disk, Spark memakai lineage untuk rekalkulasi.

Flink unggul di true streaming — memproses event satu per satu (record-at-a-time) dengan latensi milidetik dan state management yang sangat matang. Spark memakai micro-batch yang menambah latensi puluhan milidetik namun lebih sederhana. Aturan praktis: jika kalian butuh exactly-once yang sangat ketat dan latensi paling rendah untuk streaming murni, Flink adalah kandidat kuat; untuk workload campuran batch dan stream, Spark lebih praktis.

Spark vs Apache Beam

Beam adalah abstraksi (SDK + runner), bukan engine. Kalian menulis pipeline sekali dan menjalankannya di berbagai runner: Dataflow, Flink, atau Spark. Berbeda dengan itu, Spark adalah engine lengkap. Beam berguna jika organisasi ingin portabilitas lintas engine; Spark menawarkan kedalaman fitur di engine-nya sendiri.

Use Cases Nyata

Spark dipakai di berbagai skenario industri:

  • ETL dan data lake: menarik data dari sumber, membersihkan, transformasi, dan menulis ke Parquet di data lake — pola paling umum di dunia.
  • Machine learning: melatih model klasifikasi, regresi, clustering, dan recommendation dengan MLlib.
  • Real-time analytics: dashboard metrik produk dengan Structured Streaming dari Kafka.
  • Interactive analytics: menjawab pertanyaan bisnis ad-hoc dengan Spark SQL.
  • Graph processing: analisis jaringan dan rekomendasi dengan GraphX.

Contoh nyata: sebuah perusahaan fintech menjalankan ETL transaksi ke data lake setiap malam memakai Spark batch, sementara tim produk menganalisis klik pengguna secara real-time lewat Structured Streaming. Keduanya memakai engine dan API yang sama — inilah nilai dari unified engine yang ditawarkan Spark.

Peta jalan Spark di industri
sumber data → ingestion → Spark (batch + stream) → warehouse/lakehouse → BI & ML

Info

Keputusan memilih engine bukan satu arah. Banyak perusahaan memakai Spark untuk batch dan ETL, lalu menambahkan Flink khusus untuk streaming dengan latensi paling rendah. Memahami keunggulan relatif ini membuat kalian menjadi engineer yang lebih matang.

Penutup

Episode 1 memberi kalian konteks: Spark lahir di UC Berkeley AMPLab sekitar 2009 untuk mengatasi kelemahan MapReduce yang disk-bound, menjadi project top-level Apache pada 2014, dan kini menjadi engine terdistribusi paling populer dengan keunggulan in-memory computation dan unified API.

Inti yang harus dibawa pulang:

  • MapReduce menulis hasil antara ke disk; Spark menyimpannya di memory.
  • Spark menyatukan batch, SQL, streaming, graph, dan ML dalam satu runtime.
  • API Spark tersedia di Scala, Java, Python, dan R dengan sintaks ringkas.
  • Flink unggul di true streaming; Beam adalah abstraksi, bukan engine.
  • Use cases utama: ETL, machine learning, real-time analytics, dan interactive SQL.

Di episode 2 selanjutnya kita akan membahas konsep dasar dan arsitektur Spark — peran Driver, Executors, dan Cluster Manager, core abstraction RDD/DataFrame/Dataset, model eksekusi DAG stages dan tasks, serta storage model seperti partitioning dan shuffle. Ini adalah fondasi arsitektural yang akan menemani seluruh series.