Spark - Pendahuluan
Industri menggunakan Hadoop secara ekstensif untuk menganalisis kumpulan data mereka. Alasannya adalah bahwa kerangka kerja Hadoop didasarkan pada model pemrograman sederhana (MapReduce) dan memungkinkan solusi komputasi yang dapat diskalakan, fleksibel, toleran terhadap kesalahan, dan hemat biaya. Di sini yang menjadi perhatian utama adalah menjaga kecepatan dalam memproses dataset besar dalam hal waktu tunggu antara query dan waktu tunggu untuk menjalankan program.
Spark diperkenalkan oleh Apache Software Foundation untuk mempercepat proses perangkat lunak komputasi komputasi Hadoop.
Berbeda dengan kepercayaan umum, Spark is not a modified version of Hadoopdan sebenarnya tidak bergantung pada Hadoop karena memiliki pengelolaan kluster sendiri. Hadoop hanyalah salah satu cara untuk menerapkan Spark.
Spark menggunakan Hadoop dalam dua cara - salah satunya storage dan kedua processing. Karena Spark memiliki komputasi manajemen klasternya sendiri, Spark menggunakan Hadoop hanya untuk tujuan penyimpanan.
Apache Spark
Apache Spark adalah teknologi komputasi klaster secepat kilat, dirancang untuk komputasi cepat. Ini didasarkan pada Hadoop MapReduce dan memperluas model MapReduce untuk menggunakannya secara efisien untuk lebih banyak jenis komputasi, yang mencakup kueri interaktif dan pemrosesan aliran. Fitur utama Spark adalah miliknyain-memory cluster computing yang meningkatkan kecepatan pemrosesan aplikasi.
Spark dirancang untuk mencakup berbagai beban kerja seperti aplikasi batch, algoritme berulang, kueri interaktif, dan streaming. Selain mendukung semua beban kerja ini dalam sistem masing-masing, ini mengurangi beban manajemen dalam memelihara alat terpisah.
Evolusi Apache Spark
Spark adalah salah satu sub proyek Hadoop yang dikembangkan pada tahun 2009 di AMPLab UC Berkeley oleh Matei Zaharia. Itu Open Sourced pada tahun 2010 di bawah lisensi BSD. Itu disumbangkan ke yayasan perangkat lunak Apache pada tahun 2013, dan sekarang Apache Spark telah menjadi proyek Apache tingkat atas mulai Feb-2014.
Fitur Apache Spark
Apache Spark memiliki fitur berikut.
Speed- Spark membantu menjalankan aplikasi di cluster Hadoop, hingga 100 kali lebih cepat di memori, dan 10 kali lebih cepat saat dijalankan di disk. Hal ini dimungkinkan dengan mengurangi jumlah operasi baca / tulis ke disk. Ini menyimpan data pemrosesan menengah dalam memori.
Supports multiple languages- Spark menyediakan API bawaan di Java, Scala, atau Python. Karenanya, Anda dapat menulis aplikasi dalam berbagai bahasa. Spark hadir dengan 80 operator tingkat tinggi untuk kueri interaktif.
Advanced Analytics- Spark tidak hanya mendukung 'Map' dan 'reduce'. Ini juga mendukung kueri SQL, Data streaming, Pembelajaran mesin (ML), dan algoritma Grafik.
Spark Dibangun di Hadoop
Diagram berikut menunjukkan tiga cara bagaimana Spark dapat dibuat dengan komponen Hadoop.
Ada tiga cara penerapan Spark seperti yang dijelaskan di bawah ini.
Standalone- Penerapan Spark Standalone berarti Spark menempati tempat di atas HDFS (Hadoop Distributed File System) dan ruang dialokasikan untuk HDFS, secara eksplisit. Di sini, Spark dan MapReduce akan berjalan berdampingan untuk mencakup semua pekerjaan percikan di cluster.
Hadoop Yarn- Penerapan Hadoop Yarn berarti, sederhananya, percikan berjalan di Yarn tanpa perlu pra-instalasi atau akses root. Ini membantu mengintegrasikan Spark ke ekosistem Hadoop atau tumpukan Hadoop. Ini memungkinkan komponen lain untuk berjalan di atas tumpukan.
Spark in MapReduce (SIMR)- Spark di MapReduce digunakan untuk meluncurkan pekerjaan percikan selain penerapan mandiri. Dengan SIMR, pengguna dapat memulai Spark dan menggunakan cangkangnya tanpa akses administratif apa pun.
Komponen Spark
Ilustrasi berikut menggambarkan berbagai komponen Spark.
Apache Spark Core
Spark Core adalah mesin eksekusi umum yang mendasari untuk platform spark yang dibangun di atas semua fungsionalitas lainnya. Ini menyediakan komputasi In-Memory dan mereferensikan kumpulan data dalam sistem penyimpanan eksternal.
Spark SQL
Spark SQL adalah komponen di atas Spark Core yang memperkenalkan abstraksi data baru yang disebut SchemaRDD, yang memberikan dukungan untuk data terstruktur dan semi-terstruktur.
Spark Streaming
Spark Streaming memanfaatkan kemampuan penjadwalan cepat Spark Core untuk melakukan analisis streaming. Ini menyerap data dalam batch mini dan melakukan transformasi RDD (Set Data Terdistribusi Tangguh) pada batch mini data tersebut.
MLlib (Perpustakaan Pembelajaran Mesin)
MLlib adalah framework pembelajaran mesin terdistribusi di atas Spark karena arsitektur Spark berbasis memori terdistribusi. Ini, menurut tolok ukur, dilakukan oleh pengembang MLlib terhadap implementasi Alternating Least Squares (ALS). Spark MLlib sembilan kali lebih cepat dari versi berbasis disk HadoopApache Mahout (sebelum Mahout mendapatkan antarmuka Spark).
GraphX
GraphX adalah kerangka kerja pemrosesan grafik terdistribusi di atas Spark. Ini menyediakan API untuk mengekspresikan komputasi grafik yang dapat memodelkan grafik yang ditentukan pengguna dengan menggunakan API abstraksi Pregel. Ini juga menyediakan runtime yang dioptimalkan untuk abstraksi ini.