Pengenalan Ekosistem Big Data – Apache Spark

MapReduce memiliki keterbatasan dataflow yang linear, dimana proses adalah membaca data, melakukan fungsi Map, Reduce results kemudian menulisnya ke disk. Hal tersebut membuat perhitungan kompleks sulit dilakukan dalam waktu yang relatif pendek, meskipun menggunakan cluster server yang banyak.

Apache Spark adalah respon dari keterbatasan diatas. Berikut keypoint dari Apache Spark:

  • General puropose cluster-computing framework.
  • Menggunakan konsep reselient distributed data multisets.
  • Extension dari shared disk dari setiap cluster, Apache Spark menggunakan shared memory untuk mengurangi operasi write/read terhadap disk.

Modul yang didukung Apache Spark:

  • Spark SQL, didesain untuk bekerja dengan structured data, menggunakan sintaks SQL. Data disimpan dalam bentuk dataframe, programmer dapat menggunakan dataframe API untuk mengakses data.
  • Spark Streaming, berguna untuk streaming data ingestion. Menggunakan small batches.
  • MLLib, Spark machine learning library, mendukung algoritma seperti classification, regression, deccission trees, recommendation dan lainnya. Dalam benchmark, logistic regression berjalan 100x lebih cepat dibandingkan menggunakan Hadoop MapReduce.
  • GraphX, modul untuk melakukan komputasi iterasi graph.

Apache Spark nendukung language yang umum seperti: Java, Scala, Python, R, SQL.

Untuk menjalankan Apache Spark, dibutuhkan:

  • Cluster Manager, dapat menggunakan Yarn Hadoop atau Kubernetes.
  • Storage System, mendukung Hadoop HDFS, Apache HBASE dan Apache Cassandra.

Berikut perbandingan antara Hadoop dan Spark

HadoopSpark
Slow disk storageFast memory storage
High latencyLow latency
Slow, reliable batch processingStream processing
100x lebih cepat menggunakan memory
10x lebih cepat menggunakan disk
Sharing is caring: