Apache Spark

23 Jun 2022 16:30 2082 Hits 0 Comments Approved by Plimbi
Apache Spark (Spark) adalah data-processing engine open source untuk kumpulan data besar. Ini dirancang untuk memberikan kecepatan komputasi, skalabilitas, dan kemampuan program yang diperlukan untuk Big Data khususnya untuk streaming data, data grafik, machine learning, dan artificial intelligence (AI) application.

Apa itu Apache Spark?

Apache Spark (Spark) adalah data-processing engine open source untuk kumpulan data besar. Ini dirancang untuk memberikan kecepatan komputasi, skalabilitas, dan kemampuan program yang diperlukan untuk Big Data khususnya untuk streaming data, data grafik, machine learning, dan artificial intelligence (AI) application.

Mesin analitik Spark memproses data 10 hingga 100 kali lebih cepat daripada alternatif. Ini menskalakan dengan mendistribusikan pekerjaan pemrosesan di seluruh kelompok besar komputer, dengan paralelisme bawaan dan toleransi kesalahan. Bahkan termasuk API untuk bahasa pemrograman yang populer di kalangan data analysts dan data scientists, termasuk Scala, Java, Python, dan R.

Spark sering dibandingkan dengan Apache Hadoop, dan khususnya dengan MapReduce, komponen pemrosesan data asli Hadoop. Perbedaan utama antara Spark dan MapReduce adalah bahwa Spark memproses dan menyimpan data dalam memori untuk langkah selanjutnya tanpa menulis ke atau membaca dari disk yang menghasilkan kecepatan pemrosesan yang jauh lebih cepat.

Spark dikembangkan pada tahun 2009 di UC Berkeley. Dan dikelola oleh Apache Software Foundation dan membanggakan komunitas open source terbesar dalam data besar, dengan lebih dari 1.000 kontributor. Ini juga termasuk sebagai komponen inti dari beberapa penawaran big data komersial.

 

Cara kerja Apache Spark

Apache Spark memiliki arsitektur master/slave hierarkis. Spark Driver adalah node master yang mengontrol manajer cluster, yang mengelola node pekerja (slave) dan mengirimkan hasil data ke klien aplikasi. Berdasarkan kode aplikasi, Spark Driver menghasilkan SparkContext, yang bekerja dengan manajer cluster Manajer Cluster Standalone Spark atau manajer cluster lain seperti Hadoop YARN, Kubernetes, atau Mesos  untuk mendistribusikan dan memantau eksekusi di seluruh node. Ini juga menciptakan Resilient Distributed Datasets (RDDs), yang merupakan kunci kecepatan pemrosesan Spark yang luar biasa.

Resilient Distributed Dataset (RDD)

Resilient Distributed Datasets (RDDs) adalah kumpulan elemen yang toleran terhadap kesalahan yang dapat didistribusikan di antara beberapa node dalam sebuah cluster dan bekerja secara paralel. RDD adalah struktur dasar di Apache Spark. Spark memuat data dengan mereferensikan sumber data atau dengan memparalelkan koleksi yang ada dengan metode paralelisasi SparkContext ke dalam RDD untuk diproses. Setelah data dimuat ke dalam RDD, Spark melakukan transformasi dan tindakan pada RDD di memori kunci kecepatan Spark. Spark juga menyimpan data dalam memori kecuali sistem kehabisan memori atau pengguna memutuskan untuk menulis data ke disk untuk ketekunan. Setiap dataset dalam RDD dibagi menjadi partisi logis, yang dapat dihitung pada node cluster yang berbeda. Dan, pengguna dapat melakukan dua jenis operasi RDD: transformasi dan tindakan. Transformasi adalah operasi yang diterapkan untuk membuat RDD baru. Tindakan digunakan untuk menginstruksikan Apache Spark untuk menerapkan perhitungan dan meneruskan hasilnya kembali ke driver. Spark mendukung berbagai tindakan dan transformasi pada RDD. Distribusi ini dilakukan oleh Spark, sehingga pengguna tidak perlu khawatir untuk menghitung distribusi yang tepat.

Directed Acyclic Graph (DAG)

Berbeda dengan proses eksekusi dua tahap di MapReduce, Spark membuat Directed Acyclic Graph (DAG) untuk menjadwalkan tugas dan orkestrasi node pekerja di seluruh cluster. Saat Spark bertindak dan mengubah data dalam proses eksekusi tugas, penjadwal DAG memfasilitasi efisiensi dengan mengatur node pekerja di seluruh cluster. Pelacakan tugas ini memungkinkan toleransi kesalahan, karena menerapkan kembali operasi yang direkam ke data dari keadaan sebelumnya.

DataFrames dan Dataset

Selain RDD, Spark menangani dua tipe data lainnya: DataFrames dan Datasets.

DataFrames adalah application programming interfaces (APIs) yang paling umum dan mewakili tabel data dengan baris dan kolom. Meskipun RDD telah menjadi fitur penting untuk Spark, sekarang dalam mode pemeliharaan. Karena popularitas Perpustakaan Pembelajaran Mesin (MLlib) Spark, DataFrames telah mengambil peran utama sebagai API utama untuk MLlib. Ini penting untuk diperhatikan saat menggunakan MLlib API, karena DataFrames menyediakan keseragaman di berbagai bahasa, seperti Scala, Java, Python, dan R.

Kumpulan data adalah perpanjangan dari DataFrames yang menyediakan antarmuka pemrograman berorientasi objek yang aman untuk tipe. Dataset, secara default, adalah kumpulan objek JVM yang diketik dengan kuat, tidak seperti DataFrames.

Spark SQL memungkinkan data untuk ditanyakan dari DataFrames dan penyimpanan data SQL, seperti Apache Hive. Kueri Spark SQL mengembalikan DataFrame atau Dataset saat dijalankan dalam bahasa lain.

Spark Core

Spark Core adalah basis untuk semua pemrosesan data paralel dan menangani penjadwalan, pengoptimalan, RDD, dan abstraksi data. Spark Core menyediakan landasan fungsional untuk library Spark, Spark SQL, Spark Streaming, library machine learning MLlib, dan pemrosesan data grafik GraphX. Spark Core dan manajer cluster mendistribusikan data ke seluruh cluster Spark dan mengabstraksikannya. Distribusi dan abstraksi ini membuat penanganan Big Data menjadi sangat cepat dan mudah digunakan.

Spark API

Spark mencakup berbagai application programming interfaces (APIs) untuk menghadirkan kekuatan Spark ke khalayak luas. Spark SQL memungkinkan interaksi dengan data RDD secara relasional. Spark juga memiliki API yang terdokumentasi dengan baik untuk Scala, Java, Python, dan R. Setiap bahasa API di Spark memiliki nuansa spesifik dalam cara menangani data. RDD, DataFrame, dan Dataset tersedia di setiap API bahasa. Dengan API untuk berbagai bahasa tersebut, Spark membuat pemrosesan Big Data dapat diakses oleh lebih banyak kelompok orang dengan latar belakang pengembangan, ilmu data, dan statistik.

Tags

About The Author

Plimbi adalah tempat menulis untuk semua orang.
Yuk kirim juga tulisanmu sekarang
Submit Artikel