Untuk Google Cloud pelanggan yang mengandalkan Apache Spark untuk menjalankan pemrosesan data dan workload analisis, keputusan pentingnya adalah memilih antara Dataproc di Compute Engine (disebut sebagai "Dataproc" dalam dokumen ini) dan Serverless for Apache Spark. Meskipun kedua layanan ini menawarkan lingkungan Spark yang terkelola, sangat skalabel, siap produksi, dan aman yang kompatibel dengan OSS serta mendukung semua format, kedua platform ini berbeda secara mendasar dalam cara infrastruktur yang mendasarinya dikelola dan ditagih.
Dokumen ini membandingkan Google Cloud Serverless for Apache Spark dengan Dataproc dan mencantumkan fitur serta kemampuannya untuk membantu Anda memutuskan solusi workload 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 for 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-an | 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 Spark-clusters-as-a-service, 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 | Serverless for Apache Spark | Dataproc |
|---|---|---|
| Model pengelolaan | Lingkungan eksekusi tanpa server yang terkelola sepenuhnya. | Berbasis cluster. Anda menyediakan dan mengelola cluster. |
| Kontrol & penyesuaian | Lebih sedikit kontrol infrastruktur, dengan fokus pada pengiriman kode dan penentuan parameter Spark. | 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. |
| Use cases | Kueri ad-hoc, analisis interaktif, pipeline Spark baru, dan workload dengan kebutuhan resource yang tidak dapat diprediksi. | Cluster bersama yang berjalan lama, memigrasikan workload Hadoop dan Spark yang ada dengan konfigurasi kustom, workload yang memerlukan penyesuaian mendalam. |
| Overhead operasional | 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. |
Overhead yang lebih tinggi yang memerlukan pengelolaan, penskalaan, dan pemeliharaan cluster. |
| Model efisiensi | 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. | Efisiensi yang diperoleh dengan membagikan cluster di seluruh tugas dan tim, dengan model multi-tenancy berbagi. |
| Kontrol lokasi | Serverless for Apache Spark mendukung workload regional tanpa biaya tambahan untuk memberikan keandalan dan ketersediaan ekstra. | Cluster bersifat zonal. Zona dapat dipilih secara otomatis selama pembuatan cluster. |
| Biaya | 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. | Ditagih untuk waktu cluster berjalan, termasuk startup dan penonaktifan, berdasarkan jumlah node. Mencakup biaya lisensi Dataproc ditambah biaya infrastruktur. |
| Diskon Abonemen (CUD) | CUD berbasis pembelanjaan BigQuery berlaku untuk tugas Serverless for Apache Spark. | DA Compute Engine berlaku untuk semua penggunaan resource. |
| Kontrol image dan runtime | Pengguna dapat menyematkan ke versi runtime Serverless for Apache Spark minor; versi subminor dikelola oleh Serverless for Apache Spark. | Pengguna dapat menyematkan ke versi image Dataproc minor dan sub-minor. |
| 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 |
Versi sebelumnya yang didukung |
| Waktu pengaktifan | 50-an | 120 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 pemanfaatan 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 menghilangkan kompleksitas pengelolaan cluster, sehingga Anda dapat fokus 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 untuk 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 for Apache Spark mengurangi beban dan biaya operasional.
Kesimpulan
Keputusan apakah akan menggunakan Dataproc atau Serverless for 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 for Apache Spark karena kemudahan penggunaannya, efisiensi biaya untuk workload yang tidak berkelanjutan, 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.