Untuk pelanggan yang mengandalkan Apache Spark untuk menjalankan workload pemrosesan dan analisis data mereka, keputusan penting adalah memilih antara Dataproc di Compute Engine (disebut sebagai "Dataproc" dalam dokumen ini) dan Serverless untuk Apache Spark. Google Cloud Meskipun kedua layanan ini menawarkan lingkungan Spark terkelola, sangat skalabel, siap produksi, dan aman yang kompatibel dengan OSS dengan dukungan penuh untuk format data, kedua platform ini berbeda secara mendasar dalam cara infrastruktur yang mendasarinya dikelola dan ditagih.
Dokumen ini membandingkan Google Cloud Serverless untuk Apache Spark dengan Dataproc serta mencantumkan fitur dan kemampuannya untuk membantu Anda memutuskan solusi workload Spark terbaik.
Membandingkan Serverless untuk Apache Spark dengan Dataproc
Jika Anda ingin menyediakan dan mengelola infrastruktur, lalu menjalankan beban kerja di Spark dan framework pemrosesan open source lainnya, gunakan Dataproc di Compute Engine. Tabel berikut mencantumkan perbedaan utama antara Dataproc di Compute Engine dan Serverless untuk Apache Spark.
| Kemampuan | Serverless for Apache Spark | Dataproc di Compute Engine |
|---|---|---|
| Framework pemrosesan | Workload batch dan sesi interaktif: Spark | Spark. Framework open source lainnya, seperti Hive, Flink, Trino, dan Kafka |
| Serverless | Ya | Tidak |
| Waktu mulai | 50 dtk | 120 dtk |
| Kontrol infrastruktur | Tidak | Ya |
| Pengelolaan resource | Serverless | YARN |
| Dukungan GPU | Ya | Ya |
| Sesi interaktif | Ya | Tidak |
| Container kustom | Ya | Tidak |
| Akses VM (SSH) | Tidak | Ya |
| Versi Java | Java 17, 21 | Java 17 dan versi sebelumnya |
Menentukan layanan Spark terbaik
Bagian ini menguraikan keunggulan inti dan kasus penggunaan utama untuk setiap layanan guna membantu Anda memilih layanan terbaik untuk beban kerja Spark.
Ringkasan
Dataproc dan Serverless untuk Apache Spark berbeda dalam tingkat kontrol, pengelolaan infrastruktur, dan mode penagihan yang ditawarkan masing-masing.
- Spark yang dikelola Dataproc: Dataproc menawarkan cluster Spark sebagai layanan, yang menjalankan Spark terkelola di infrastruktur Compute Engine Anda. Anda membayar waktu operasional cluster.
- Serverless for Apache Spark: Serverless for Apache Spark menawarkan Spark-jobs-as-a-service, yang menjalankan Spark di infrastruktur Google Cloud terkelola sepenuhnya. Anda membayar runtime tugas.
Karena perbedaan ini, setiap layanan paling cocok untuk kasus penggunaan berikut:
| Layanan | Kasus penggunaan |
|---|---|
| Dataproc | Lingkungan bersama yang berjalan lama Workload yang memerlukan kontrol terperinci atas infrastruktur Memigrasikan lingkungan Hadoop dan Spark lama |
| Serverless for Apache Spark | Lingkungan tugas khusus yang berbeda Workload batch terjadwal Pengelolaan kode diprioritaskan daripada pengelolaan infrastruktur |
Perbedaan utama
| Fitur | Dataproc | Serverless for Apache Spark |
|---|---|---|
| Model pengelolaan | Berbasis cluster. Anda menyediakan dan mengelola cluster. | Lingkungan eksekusi tanpa server yang terkelola sepenuhnya. |
| Kontrol & penyesuaian | Kontrol yang lebih besar atas konfigurasi cluster, jenis mesin, dan software. Kemampuan untuk menggunakan spot VM, serta menggunakan kembali reservasi dan kapasitas resource Compute Engine. Cocok untuk workload yang memiliki dependensi pada bentuk VM tertentu, seperti arsitektur CPU. | Lebih sedikit kontrol infrastruktur, dengan fokus pada pengiriman kode dan penentuan parameter Spark. |
| Use cases | Cluster bersama yang berjalan lama, memigrasikan workload Hadoop dan Spark yang ada dengan konfigurasi kustom, workload yang memerlukan penyesuaian mendalam. | Kueri ad-hoc, analisis interaktif, pipeline Spark baru, dan workload dengan kebutuhan resource yang tidak dapat diprediksi. |
| Overhead operasional | Overhead yang lebih tinggi yang memerlukan pengelolaan, penskalaan, dan pemeliharaan cluster. | Overhead yang lebih rendah. Google Cloud mengelola infrastruktur, penskalaan, dan penyediaan, sehingga memungkinkan model NoOps. Gemini Cloud Assist mempermudah pemecahan masalah, sementara penyesuaian otomatis Serverless for Apache Spark membantu memberikan performa yang optimal. |
| Model efisiensi | Efisiensi yang diperoleh dengan membagikan cluster di seluruh tugas dan tim, dengan model multi-tenancy berbagi. | Tidak ada overhead komputasi saat tidak ada aktivitas: alokasi resource komputasi hanya saat tugas berjalan. Tidak ada biaya mulai dan penonaktifan. Sesi interaktif bersama didukung untuk meningkatkan efisiensi. |
| Kontrol lokasi | Cluster bersifat zonal. Zona dapat dipilih secara otomatis selama pembuatan cluster. | Serverless for Apache Spark mendukung workload regional tanpa biaya tambahan untuk memberikan keandalan dan ketersediaan ekstra. |
| Biaya | Ditagih untuk waktu cluster berjalan, termasuk saat startup dan penonaktifan, berdasarkan jumlah node. Mencakup biaya lisensi Dataproc ditambah biaya infrastruktur. | Ditagih hanya untuk durasi eksekusi tugas Spark, tidak termasuk startup dan penonaktifan, berdasarkan resource yang digunakan. Ditagih sebagai Unit Komputasi Data (DCU) yang digunakan dan biaya infrastruktur lainnya. |
| Diskon Abonemen (CUD) | DA Compute Engine berlaku untuk semua penggunaan resource. | CUD berbasis pembelanjaan BigQuery berlaku untuk tugas Serverless for Apache Spark. |
| Kontrol image dan runtime | Pengguna dapat menyematkan ke versi gambar Dataproc minor dan subminor. | Pengguna dapat menyematkan ke versi runtime Serverless for Apache Spark minor; versi subminor dikelola oleh Serverless for Apache Spark. |
| Pengelolaan resource | YARN | Serverless |
| Dukungan GPU | Ya | Ya |
| Sesi interaktif | Tidak | Ya |
| Container kustom | Tidak | Ya |
| Akses VM (SSH) | Ya | Tidak |
| Versi Java | Versi sebelumnya yang didukung | Java 17, 21 |
| Waktu pengaktifan | 120 dtk | 50 dtk |
Kapan harus memilih Dataproc
Dataproc adalah layanan terkelola yang dapat Anda gunakan untuk menjalankan Apache Spark dan framework pemrosesan data open source lainnya. Opsi ini menawarkan tingkat kontrol dan fleksibilitas yang tinggi, sehingga menjadi pilihan yang lebih disukai dalam skenario berikut:
- Memigrasikan workload Hadoop dan Spark yang ada: Mendukung migrasi cluster Hadoop atau Spark lokal ke Google Cloud. Mereplikasi konfigurasi yang ada dengan perubahan kode minimal, terutama saat menggunakan versi Spark yang lebih lama.
- Penyesuaian dan kontrol mendalam: Memungkinkan Anda menyesuaikan jenis mesin cluster, ukuran disk, dan konfigurasi jaringan. Tingkat kontrol ini sangat penting untuk penyesuaian performa dan mengoptimalkan penggunaan resource untuk tugas yang kompleks dan berjalan lama.
- Cluster yang berjalan lama dan persisten: Mendukung tugas Spark yang berjalan lama dan berkelanjutan serta cluster persisten untuk beberapa tim dan project.
- Ekosistem open source yang beragam: Menyediakan lingkungan terpadu untuk menjalankan pipeline pemrosesan data yang menjalankan alat ekosistem Hadoop, seperti Hive, Pig, atau Presto, dengan beban kerja Spark Anda.
- Kepatuhan keamanan: Memungkinkan kontrol atas infrastruktur untuk memenuhi standar keamanan atau kepatuhan tertentu, seperti mengamankan informasi identitas pribadi (PII) atau informasi kesehatan terlindungi (PHI).
- Fleksibilitas infrastruktur: Menawarkan VM Spot dan kemampuan untuk menggunakan kembali reservasi dan kapasitas resource Compute Engine untuk menyeimbangkan penggunaan resource dan memfasilitasi strategi infrastruktur cloud Anda.
Kapan harus memilih Serverless for Apache Spark
Serverless untuk Apache Spark menyederhanakan kompleksitas pengelolaan cluster, sehingga Anda dapat berfokus pada kode Spark. Hal ini menjadikannya pilihan yang sangat baik untuk digunakan dalam skenario pemrosesan data berikut:
- Analisis ad-hoc dan interaktif: Bagi data scientist dan analis yang menjalankan kueri interaktif dan analisis eksploratif menggunakan Spark, model serverless menyediakan cara cepat untuk memulai tanpa berfokus pada infrastruktur.
- Aplikasi dan pipeline berbasis Spark: Saat membangun pipeline atau aplikasi data baru di Spark, Serverless untuk Apache Spark dapat mempercepat pengembangan secara signifikan dengan menghilangkan overhead operasional pengelolaan cluster.
- Workload dengan permintaan sporadis atau tidak terprediksi: Untuk tugas Spark yang terputus-putus atau tugas dengan persyaratan resource yang berfluktuasi, penskalaan otomatis Serverless untuk Apache Spark dan harga bayar per penggunaan (biaya berlaku untuk penggunaan resource tugas) dapat mengurangi biaya secara signifikan.
- Fokus pada produktivitas developer: Dengan menghilangkan kebutuhan akan penyediaan dan pengelolaan cluster, Serverless untuk Apache Spark mempercepat pembuatan logika bisnis, memberikan insight yang lebih cepat, dan meningkatkan produktivitas.
- Operasi yang disederhanakan dan overhead yang berkurang: Pengelolaan infrastruktur Serverless untuk Apache Spark mengurangi beban dan biaya operasional.
Kesimpulan
Keputusan apakah akan menggunakan Dataproc atau Serverless untuk Apache Spark bergantung pada persyaratan workload, preferensi operasional, dan tingkat kontrol yang Anda inginkan.
- Pilih Dataproc jika Anda memerlukan kontrol maksimum, perlu memigrasikan workload Hadoop atau Spark, atau memerlukan lingkungan cluster bersama yang persisten dan disesuaikan.
- Pilih Serverless untuk Apache Spark karena kemudahan penggunaannya, efisiensi biaya untuk workload yang tidak rutin, dan kemampuannya untuk mempercepat pengembangan aplikasi Spark baru dengan menghilangkan overhead pengelolaan infrastruktur.
Setelah mengevaluasi faktor-faktor yang tercantum di bagian ini, pilih layanan yang paling efisien dan hemat biaya untuk menjalankan Spark guna memanfaatkan potensi penuh data Anda.