[Report I] Mengenal Apache Spark - Part I
Apa itu Spark
Apache Spark merupakan framework pengolahan big data open-source yang bersifat cepat, mudah dalam penggunaan, dan memiliki analisa yang handal. Awalnya dikembangkan tahun 2009 di AMPLab milik UC Berkeley, dan mulai menjadi open source pada tahun 2010 sebagai hasil dari proyek Apache.
Spark memiliki beberapa keuntungan dibandingkan dengan framework pengolahan big data lainnya, dan tetap lebih unggul dibanding Hadoop dan Storm yang menerapkan teknologi MapReduce. Spark memberikan framework yang bersifat komprehensif dan menjadi satu untuk mengolah kebutuhan pemrosesan big data yang memiliki keberagaman data set (data teks, data grafik, dll) dan keberagaman sumber data (batch v. real-time streaming data).
Spark memungkinkan aplikasi di Cluster Hadoop untuk berjalan 100 kali lebih cepat saat menggunakan memori dan 10 kali lebih cepat meskipun saat menggunakan sebuah disk. Spark memungkinkan pengguna untuk memrogram dalam Java, Scala, maupun Phyton. Spark memiliki built-in set dengan 80 operator high-level, dan pengguna dapat menggunakan operator tersebut untuk meng-query-kan data. Dalam teknologi Map&Reduce, Spark mendukung query SQL, streaming data, machine learning, dan pemrosesan data grafik. Pengguna dapat menggunakan kelebihan ini secara independen maupun dengan menggabungkannya untuk menjalankan dalam kasus single-data pipeline.
Hadoop dan Spark
Hadoop sebagai teknologi pemrosesan big data telah menjadi solusi untuk memroses data set yang besar. MapReduce merupakan solusi yang baik untuk komputasi one-pass, tetapi tidak efisien untuk use case yang membutuhkan komputasi dan algoritma multi-pass. Dalam setiap pemrosesan data, memiliki satu fase Map dan satu fase Reduce dimana pengguna harus mengkonversikan setiap use case ke dalam pola MapReduce jika ingin menyelesaikan use case yang membutuhkan komputasi dan algoritma multi-pass.
Berbeda dengan Spark, Spark memungkinkan pengguna untuk mengembangkan multi-step data pipeline yang kompleks dengan menggunakan Directed Acyclic Graph (DAG). Spark juga mendukung sistem in-memory data sharing dengan menggunakan DAG sehingga memungkinan task yang berbeda menggunakan data yang sama. Spark juga menggunakan infrastruktur Hadoop Distributed File System (HDFS) yang dapat digunakan untuk menyebar-luaskan aplikasi Spark di dalam sebuah existing Cluster Hadoop v1, Cluster Hadoop v2 YARN, maupun dalam Apache Mesos.
Karakteristik dari Spark
Spark memanfaatkan teknologi MapReduce secara lebih mendalam dengan biaya yang cenderung lebih murah dalam pemrosesan data. Dengan kemampuan seperti in-memory data storage, dan near real-time processing, performa dari Spark dapat beberapa kali lebih cepat jika dibandingkan dengan teknologi big data lainnya. Beberapa karakteristik lain yang dimiliki Spark adalah :
- mendukung fungsi-fungsi lain selain Map&Reduce
- menyediakan API di Scala, Java, dan Phyton yang ringkas dan konsisten
- menawarkan shell yang interaktif untuk Scala dan Phyton (untuk Java belum tersedia)
- Lazy Evaluation untuk query big data yang akan mengoptimasi sebagian besar alur kerja pemrosesan data
- Scala
- Java
- Phyton
- Clojure
- R


Komentar
Posting Komentar