Beranda Page Title Apache Spark Apa itu Apache Spark?
Jelajahi solusi Apache Spark IBM Berlangganan pembaruan AI
Ilustrasi dengan kolase piktogram awan, diagram lingkaran, piktogram grafik
Apa itu Apache Spark?

Apache Spark adalah mesin pemrosesan data sumber terbuka yang sangat cepat untuk machine learning dan aplikasi AI, didukung oleh komunitas sumber terbuka terbesar dalam big data.

Apache Spark (Spark) dengan mudah menangani kumpulan data berskala besar dan merupakan sistem pengelompokan tujuan umum yang cepat yang cocok untuk PySpark. Sistem ini dirancang untuk memberikan kecepatan komputasi, skalabilitas, dan kemampuan pemrograman yang diperlukan untuk big data, khususnya untuk streaming data, data grafik, analisis, machine learning, pemrosesan data berskala besar, dan aplikasi kecerdasan buatan (AI).

Mesin analisis Spark memproses data 10 hingga 100 kali lebih cepat daripada beberapa alternatif, seperti Hadoop (tautan berada di luar ibm.com) untuk beban kerja yang lebih kecil. Ini menskalakan dengan mendistribusikan alur kerja pemrosesan di seluruh kelompok besar komputer, dengan paralelisme bawaan dan toleransi kesalahan. Bahkan mencakup API untuk bahasa pemrograman yang populer di kalangan analis data dan ilmuwan data, termasuk Scala, Java, Python, dan R.

Spark sering dibandingkan dengan Apache Hadoop, dan khususnya dengan Hadoop MapReduce, komponen pemrosesan data asli Hadoop. Perbedaan utama antara Spark dan MapReduce adalah Spark memproses dan menyimpan data dalam memori untuk langkah selanjutnya, tanpa menulis atau membaca dari disk, yang menghasilkan kecepatan pemrosesan yang jauh lebih cepat. (Anda akan menemukan lebih banyak tentang bagaimana Spark membandingkan dan melengkapi Hadoop di tempat lain dalam artikel ini.)

Spark dikembangkan pada tahun 2009 di AMPLab UC Berkeley. Saat ini, ia dikelola oleh Apache Software Foundation dan memiliki komunitas sumber terbuka terbesar dalam big data, dengan lebih dari 1.000 kontributor. Ini juga termasuk sebagai komponen inti dari beberapa penawaran big data komersial.

AI generatif dan ML untuk perusahaan

Pelajari manfaat utama AI generatif dan bagaimana organisasi dapat menggabungkan AI generatif dan pembelajaran mesin ke dalam bisnis mereka.

Ebook

Daftar untuk mendapatkan buku elektronik di toko data AI

Cara kerja Apache Spark

Apache Spark memiliki arsitektur primer/sekunder hierarkis. Spark Driver adalah node utama yang mengontrol manajer cluster, yang mengelola node sekunder dan mengirimkan hasil data ke klien aplikasi.

Berdasarkan kode aplikasi, Spark Driver menghasilkan SparkContext, yang bekerja dengan manajer cluster, Standalone Cluster Manager dari Spark atau manajer cluster lain seperti Hadoop YARN, Kubernetes, atau Mesos, untuk mendistribusikan dan memonitor eksekusi di seluruh node. Ini juga menciptakan Resilient Distributed Datasets (RDD), yang merupakan kunci kecepatan pemrosesan Spark yang luar biasa.

Resilient Distributed Dataset (RDD)


Resilient Distributed Datasets (RDD) adalah kumpulan elemen yang tahan terhadap kesalahan yang dapat didistribusikan di antara beberapa node dalam sebuah cluster dan dikerjakan secara paralel. RDD adalah struktur dasar di Apache Spark.

Spark memuat data dengan mereferensikan sumber data atau dengan memparalelkan koleksi yang sudah ada dengan metode paralelisasi SparkContext untuk menyimpan data 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 jika sistem kehabisan memori atau pengguna memutuskan untuk menulis data ke disk untuk persistensi.

Setiap kumpulan data dalam RDD dibagi menjadi partisi logis, yang dapat dihitung pada node yang berbeda dari cluster. Dan pengguna dapat melakukan dua jenis operasi RDDtransformasi dan tindakanTransformasi adalah operasi yang diterapkan untuk membuat RDD baruTindakan digunakan untuk menginstruksikan Apache Spark untuk menerapkan komputasi dan meneruskan hasilnya kembali ke driver.

Spark mendukung berbagai tindakan dan transformasi pada RDD. Distribusi ini dilakukan oleh Spark, sehingga pengguna tidak perlu khawatir tentang menghitung distribusi yang tepat.

Directed Acyclic Graph (DAG)


Berlawanan dengan proses eksekusi dua tahap di MapReduce, Spark membuat Directed Acyclic Graph (DAG) untuk menjadwalkan tugas dan orkestrasi node-node pekerja di seluruh cluster. Ketika 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 status sebelumnya.

DataFrame dan Dataset


Selain RDD, Spark menangani dua tipe data lainnya: DataFrame dan Dataset.

DataFrame adalah antarmuka pemrograman aplikasi (API) terstruktur yang paling umum dan merepresentasikan tabel data dengan baris dan kolom. Meskipun RDD telah menjadi fitur penting bagi Spark, kini berada dalam mode pemeliharaan. Karena popularitas Machine Learning Library (MLlib) dari Spark, DataFrames telah mengambil peran utama sebagai API utama untuk MLlib (seperangkat algoritme machine learning untuk skalabilitas plus alat untuk pemilihan fitur dan membangun pipeline ML). Hal ini penting untuk diperhatikan ketika menggunakan API MLlib, karena DataFrame menyediakan keseragaman di berbagai bahasa, seperti Scala, Java, Python, dan R.

Dataset adalah ekstensi dari DataFrame yang menyediakan antarmuka pemrograman berorientasi objek yang aman-jenis. Dataset, secara default, adalah kumpulan objek JVM yang diketik dengan kuat, tidak seperti DataFrame.

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

Spark Core


Spark Core adalah basis untuk semua pemrosesan data paralel dan menangani penjadwalan, optimasi, RDD, dan abstraksi data. Spark Core menyediakan dasar fungsional untuk pustaka Spark, Spark SQL, Spark Streaming, pustaka machine learning MLlib, dan pemrosesan data grafik GraphX. Spark Core dan pengelola cluster mendistribusikan data di seluruh cluster Spark dan mengabstraksinya. Distribusi dan abstraksi ini membuat penanganan Big Data menjadi sangat cepat dan ramah pengguna.

API Spark


Spark menyertakan berbagai antarmuka pemrograman aplikasi (API) untuk menghadirkan kekuatan Spark kepada khalayak luas. SQL Spark memungkinkan interaksi dengan data RDD secara relasional. Spark juga memiliki API yang terdokumentasi dengan baik untuk Scala, Java, Python, dan R. Setiap API bahasa di Spark memiliki nuansa spesifik dalam cara menangani data. RDD, DataFrame, dan Dataset tersedia dalam setiap API bahasa. Dengan API untuk berbagai bahasa, Spark membuat pemrosesan big data dapat diakses oleh kelompok orang yang lebih beragam dengan latar belakang dalam pengembangan, ilmu data, rekayasa data, dan statistik.

Keuntungan dari Apache Spark 

Spark mempercepat pengembangan dan pengoperasian dalam berbagai cara. Spark akan membantu tim:  

  • Mempercepat pengembangan aplikasi: Model pemrograman Streaming dan SQL Apache Spark yang didukung oleh MLlib dan GraphX mempermudah pembuatan aplikasi yang mengeksploitasi machine learning dan analisis grafik.

  • Berinovasi lebih cepatAPI memberikan kemudahan penggunaan saat memanipulasi data semi-terstruktur dan mentransformasi data.  

  • Mengoptimalkan dengan teknologi terbuka: OpenPOWER Foundation memungkinkan GPU, CAPI Flash, RDMA, akselerasi FPGA, dan inovasi machine learning mengoptimalkan kinerja untuk beban kerja Apache Spark.

  • Memproses lebih cepat: Spark bisa 100x lebih cepat daripada Hadoop (tautan berada di luar ibm.com) untuk beban kerja yang lebih kecil karena mesin komputasi dalam memori dan penyimpanan data disk yang canggih.

  • Mempercepat akses memori: Spark dapat digunakan untuk membuat satu ruang memori yang besar untuk pemrosesan data, yang memungkinkan pengguna tingkat lanjut untuk mengakses data melalui antarmuka menggunakan Python, R, dan Spark SQL.

Apache Spark dan machine learning

Spark memiliki berbagai pustaka yang memperluas kemampuan untuk machine learning, kecerdasan buatan (AI), dan pemrosesan aliran.

Apache Spark MLlib


Salah satu kemampuan penting dari Apache Spark adalah kemampuan machine learning yang tersedia dalam Spark MLlib, yang menyediakan solusi siap pakai untuk melakukan klasifikasi dan regresi, pemfilteran kolaboratif, pengelompokan, aljabar linier terdistribusi, pohon keputusan, hutan acak, pohon yang ditingkatkan gradiennya, penambangan pola yang sering terjadi, metrik evaluasi, dan statistik. Kemampuan MLlib, dikombinasikan dengan berbagai jenis data, menjadikan Apache Spark alat data besar yang sangat diperlukan.

Spark GraphX


Selain memiliki kemampuan API, Spark GraphX dirancang untuk memecahkan masalah grafik. GraphX adalah abstraksi grafik yang memperluas RDD untuk grafik dan komputasi grafik paralel. Spark GraphX terintegrasi dengan basis data grafik yang menyimpan informasi interkonektivitas atau jaringan informasi koneksi, seperti jaringan sosial.

Spark Streaming


Spark Streaming adalah perpanjangan dari Spark API inti yang memungkinkan pemrosesan aliran data langsung yang dapat diskalakan dan toleran terhadap kesalahan. Ketika Spark Streaming memproses data, ini dapat mengirimkan data ke sistem file, basis data, dan dasbor langsung untuk analisis streaming real-time dengan machine learning dan algoritme pemrosesan grafik Spark. Dibangun pada mesin Spark SQL, Spark Streaming juga memungkinkan pemrosesan batch tambahan yang menghasilkan pemrosesan data streaming yang lebih cepat.

Tautan yang berhubungan

Hadoop

analisis data besar

Spark vs. Apache Hadoop dan MapReduce

“Spark vs. Hadoop” adalah istilah yang sering dicari di web, tetapi seperti disebutkan di atas, Spark lebih merupakan peningkatan dari Hadoop, dan, lebih khususnya, untuk komponen pemrosesan data native Hadoop, MapReduce. Faktanya, Spark dibangun di atas kerangka kerja MapReduce, dan saat ini, sebagian besar distribusi Hadoop menyertakan Spark.

Seperti Spark, MapReduce memungkinkan programmer untuk menulis aplikasi yang memproses kumpulan data yang sangat besar lebih cepat dengan memproses bagian dari kumpulan data secara paralel di seluruh cluster komputer yang besar. Namun, ketika MapReduce memproses data di disk, menambahkan waktu baca dan tulis yang memperlambat pemrosesan, Spark melakukan perhitungan di memori, yang jauh lebih cepat. Hasilnya, Spark dapat memproses data hingga 100 kali lebih cepat daripada MapReduce. 

API bawaan Spark untuk berbagai bahasa membuatnya lebih praktis dan mudah didekati oleh para pengembang daripada MapReduce, yang memiliki reputasi sulit untuk diprogram. Tidak seperti MapReduce, Spark dapat menjalankan aplikasi pemrosesan aliran pada cluster Hadoop menggunakan YARN, manajemen sumber daya Hadoop dan kerangka kerja penjadwalan pekerjaan. Seperti disebutkan di atas, Spark menambahkan kemampuan MLLib, GraphX, dan SparkSQL. Dan Spark dapat menangani data dari sumber data lain di luar aplikasi Hadoop, termasuk Apache Kafka.

Jika tidak, Spark kompatibel dengan dan melengkapi Hadoop. Itu dapat memproses data Hadoop, termasuk data dari HDFS (Hadoop Distributed File System), HBase (database non-relasional yang berjalan pada HDFS), Apache Cassandra (alternatif NoSQL untuk HDFS), dan Hive (gudang data berbasis Hadoop).

Solusi terkait
IBM Analytics Engine

Analytics Engine adalah gabungan layanan Apache Spark dan Apache Hadoop untuk membuat aplikasi analitik.

Jelajahi IBM Analytics Engine
IBM Watson Studio

Membangun kepercayaan dan menskalakan AI di seluruh lingkungan cloud. Memberdayakan ilmuwan data, pengembang, dan analis untuk membangun, menjalankan, dan mengelola model AI, serta mengoptimalkan keputusan.

Jelajahi IBM Watson Studio
Apache Spark di IBM Power

Andalkan kerangka kerja komputasi cluster sumber terbuka yang dioptimalkan untuk pemrosesan data yang sangat cepat dan berskala besar.

Jelajahi Apache Spark di IBM Power
IBM Spectrum Conductor

Dengan percaya diri menerapkan IBM Spectrum Conductor dan layanan lainnya untuk lingkungan perusahaan multitenant, baik secara on premises maupun di cloud

Jelajahi IBM Spectrum Conductor
Sumber daya Jelajahi analisis big data dengan Apache Spark

Pelajari bagaimana Spark membantu menyederhanakan tugas yang menantang dan intensif secara komputasi dalam memproses data real-time dalam jumlah besar.

Hadoop vs. Spark: Apa Perbedaannya?

Pelajari tentang arsitektur Hadoop dan Spark serta perbandingan kerangka kerja big data ini dalam berbagai skenario.

AI generatif dan ML untuk perusahaan

Pelajari manfaat utama AI generatif dan bagaimana organisasi dapat menggabungkan AI generatif dan pembelajaran mesin ke dalam bisnis mereka.

Lihat langkah-langkah terperinci yang dapat diikuti pengembang untuk menyelesaikan satu tugas atau lebih

Setiap tutorial memberikan instruksi langsung yang membantu pengembang mempelajari cara menggunakan teknologi dalam proyek mereka.

Migrasi aplikasi lama ke Apache Spark

Pelajari cara mengubah sistem inti dengan Apache Spark. Dapatkan ketangkasan, kinerja, dan akses ke ekosistem yang lebih luas.

Ambil langkah selanjutnya

Skalakan beban kerja AI untuk semua data Anda di mana saja dengan IBM watsonx.data. Penyimpanan data yang disesuaikan untuk tujuan yang dibangun pada arsitektur terbuka data lakehouse.

Jelajahi watsonx.data Pesan demo langsung