Perbandingan dengan Dataproc di Compute Engine

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.