Perbandingan dengan Google Cloud Serverless untuk Apache Spark

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.