Apa yang dimaksud dengan Resilient Distributed kumpulan data (RDD)?

6 Februari 2025

 

 

Penyusun

James Holdsworth

Content Writer

Matthew Kosinski

Enterprise Technology Writer

Apa yang dimaksud dengan Resilient Distributed kumpulan data (RDD)?

Resilient Distributed Dataset (RDD) merupakan kumpulan data yang tidak dapat diubah dan toleran terhadap kesalahan yang dapat didistribusikan ke beberapa node kluster untuk diproses secara paralel. RDD adalah struktur data dasar dalam mesin pemrosesan data sumber terbuka Apache Spark.

Spark dikembangkan untuk mengatasi kekurangan pada MapReduce, sebuah model pemrograman untuk "chunking" tugas pemrosesan data yang besar menjadi tugas-tugas paralel yang lebih kecil.

MapReduce bisa lambat dan tidak efisien. Ini membutuhkan replikasi (mempertahankan beberapa salinan data di lokasi yang berbeda), serialisasi (mengkoordinasikan akses ke sumber daya yang digunakan oleh lebih dari satu program), dan I/O yang intens (input/output penyimpanan disk). 

Spark secara khusus mengurangi pemrosesan yang tidak perlu. Sementara MapReduce menulis data perantara ke disk, Spark menggunakan RDD untuk menyimpan cache dan menghitung data dalam memori. Hasilnya adalah analytics engine Spark dapat memproses data 10-100 kali lebih cepat daripada MapReduce.1

RDD dan Apache Spark

Apache Spark adalah mesin pemrosesan data berskala besar, open source, dan cepat yang sering digunakan untuk aplikasi machine learning (ML) dan kecerdasan buatan (AI). Spark dapat dilihat sebagai peningkatan pada Hadoop, lebih khusus lagi, pada kerangka kerja MapReduce. 

Spark menskalakan dengan mendistribusikan alur kerja pemrosesan data di seluruh kelompok besar komputer, dengan dukungan bawaan untuk komputasi paralel pada beberapa node dan toleransi kesalahan.

Ini mencakup antarmuka pemrograman aplikasi (API) untuk ilmu data umum dan bahasa pemrograman rekayasa data, termasuk Java, Python (PySpark), Scala dan R.

Spark menggunakan RDD untuk mengelola dan memproses data. Setiap RDD dibagi menjadi partisi logis, yang dapat dihitung pada node cluster yang berbeda secara bersamaan. Pengguna dapat melakukan 2 jenis operasi RDD: transformasi dan tindakan.

  • Transformasi adalah operasi yang membuat RDD baru.

  • Tindakan menginstruksikan Spark untuk menerapkan komputasi dan meneruskan hasil kembali ke driver Spark, proses yang mengelola pekerjaan Spark.

Spark melakukan transformasi dan tindakan pada RDD dalam memori—kunci kecepatan Spark. Spark dapat menyimpan data dalam memori atau menulis data ke disk untuk persistensi tambahan. 

Desain 3D bola yang menggelinding di lintasan

Berita + Insight AI terbaru 


Temukan insight dan berita yang dikurasi oleh para pakar tentang AI, cloud, dan lainnya di Buletin Think mingguan. 

Cara Kerja RDD

Resilient Distributed Dataset bersifat tangguh dan terdistribusi. Ini artinya:

Tangguh

RDD disebut "tahan" karena mereka melacak informasi garis keturunan data sehingga data yang hilang dapat dibangun kembali jika ada kegagalan, membuat RDD sangat toleran terhadap kesalahan.

Sebagai contoh ketahanan data ini, pertimbangkan inti eksekutor yang hilang selama pemrosesan partisi RDD. Driver akan deteksi kegagalan itu, dan partisi itu akan ditugaskan kembali ke inti eksekutor yang berbeda.

Terdistribusi

RDD disebut "terdistribusi" karena mereka dibagi menjadi kelompok-kelompok data yang lebih kecil yang dapat didistribusikan ke node komputasi yang berbeda dan diproses secara bersamaan.

Selain 2 karakteristik inti ini, RDD memiliki fitur lain yang berkontribusi pada kepentingan dan operasinya di Spark.

Komputasi dalam memori

Banyak kerangka kerja pemrosesan data—dan khususnya MapReduce —harus melakukan beberapa operasi baca atau tulis dari sistem penyimpanan eksternal, yang memperlambat kinerjanya. RDD membantu Apache Spark memecahkan masalah ini.

RDD mengurangi I/O disk dengan menggunakan komputasi dalam memori yang menyimpan hasil antara dari operasi iteratif dalam memori akses acak (RAM). Menggunakan komputasi dalam memori dan penyimpanan dapat mendukung akses yang lebih cepat dan pemrosesan hampir real-time.

RDD juga dapat membantu mempercepat waktu pelatihan untuk algoritma machine learning dan pemrosesan analitik big data berskala besar. Penggunaan komputasi dalam memori dapat mengurangi waktu yang diperlukan untuk mengakses penyimpanan data.

Evaluasi malas

Di Spark, semua transformasi—operasi yang diterapkan untuk membuat RDD baru—bersifat “malas,” artinya data tidak dimuat atau dihitung segera.

Sebaliknya, transformasi dilacak dalam grafik acyclic terarah (DAG) dan dijalankan hanya ketika ada ajakan bertindak khusus untuk program driver.

Program driver mengarahkan fungsi utama dan operasi untuk komputasi cluster pada pekerjaan Spark, seperti agregasi, pengumpulan, penghitungan atau penyimpanan output ke sistem file.

Puluhan tindakan dan transformasi yang mungkin dilakukan termasuk aggregateByKey, countByKey, flatMap, groupByKey, reduceByKey, dan sortbyKey.

Evaluasi malas membantu mengoptimalkan pipeline pemrosesan data dengan menghilangkan pemrosesan yang tidak perlu dan pemotongan perhitungan yang tidak diperlukan.

Pembuatan partisi

Spark secara otomatis mempartisi RDD di beberapa node sehingga dapat memproses volume data yang sangat besar yang tidak dapat ditampung dalam satu node. Untuk membantu menghindari korupsi, setiap partisi tunggal disimpan pada satu node daripada didistribusikan di beberapa node. 

RDD memungkinkan organisasi untuk menentukan penempatan partisi komputasi sehingga tugas-tugas dapat berjalan mendekati data yang dibutuhkan. Penempatan ini membantu meningkatkan kecepatan pemrosesan.

Selain itu, jumlah eksekutor (komputer yang menjalankan tugas seperti yang ditugaskan oleh driver) dalam cluster dapat ditingkatkan untuk meningkatkan paralelisme dalam sistem. Tingkat paralelisme dalam output tergantung pada jumlah partisi di RDD induk. 

RDD dapat dibuat dalam partisi logis di seluruh cluster untuk mengaktifkan operasi paralel pada beberapa node. RDD dapat dibuat dari berbagai sumber penyimpanan yang stabil, seperti Amazon Web Services (AWS) S3, Hadoop Distributed File System (HDFS)Apache HBase, dan Cassandra. Mereka juga dapat dibuat melalui bahasa pemrograman seperti Scala dan Python.

AI Academy

Apakah manajemen data merupakan rahasia AI generatif?

Jelajahi mengapa data berkualitas tinggi sangat penting untuk keberhasilan penggunaan AI generatif.

Persistensi

Spark RDD dapat menyimpan kumpulan data dalam memori di seluruh operasi. Setiap node dapat menyimpan partisi yang telah dihitung dalam memori dan menggunakannya kembali untuk tindakan selanjutnya pada kumpulan data atau kumpulan data yang dihasilkan. Persistensi ini dapat sangat mempercepat pemrosesan.

Spark juga memberi pengguna opsi penyimpanan interaktif, memberi mereka kontrol atas bagaimana data disimpan. Data dapat disimpan dalam memori, pada disk, atau campuran keduanya.

Kemampuan untuk Tidak dapat Diubah

RDD tidak dapat diubah, artinya mereka tidak dapat dimodifikasi setelah pembuatan. Kemampuan ini membantu data tetap stabil dari waktu ke waktu melalui berbagai operasi.

Hal ini juga memudahkan dan membuat lebih aman untuk berbagi data di berbagai proses, dan membantu melindungi dari kerusakan yang dapat disebabkan oleh pembaruan simultan dari berbagai thread. 

Sementara RDD tidak dapat diubah, pengguna dapat membuat RDD baru dengan menerapkan transformasi ke yang sudah ada, yang memungkinkan kumpulan data diperbarui tanpa mengubah data asli.

Kapasitas untuk data tidak terstruktur

RDD dapat memproses data tidak terstruktur dan terstruktur. Saat memproses data yang tidak terstruktur, informasi dapat diambil dari beberapa jenis database, aliran media, atau file teks tanpa perlu skema tetap atau membuat DataFrame.

Konon, pengguna dapatmembuat DataFrames di Spark, yang memungkinkan mereka memanfaatkan pengoptimalan tertentu untuk meningkatkan kinerja.

Solusi terkait
Perangkat lunak dan solusi manajemen data

Rancang strategi data yang menghilangkan silo data, mengurangi kompleksitas, dan meningkatkan kualitas data untuk pengalaman pelanggan dan karyawan yang luar biasa.

Jelajahi solusi manajemen data
IBM watsonx.data™

watsonx.data memungkinkan Anda untuk menskalakan analitik dan AI dengan semua data Anda, di mana pun data berada, melalui penyimpanan data yang terbuka, hybrid, dan diatur.

Temukan watsonx.data
Layanan konsultasi data dan analitik

Dapatkan nilai data perusahaan dengan IBM Consulting, untuk membangun organisasi berbasis insight yang memberikan keuntungan bisnis.

Temukan layanan analitik
Ambil langkah selanjutnya

Rancang strategi data yang menghilangkan silo data, mengurangi kompleksitas, dan meningkatkan kualitas data untuk pengalaman pelanggan dan karyawan yang luar biasa.

Jelajahi solusi manajemen data Temukan watsonx.data
Catatan kaki

1 Apache Spark, Apache Software Foundation, 20 Desember 2024.