Memecahkan masalah kegagalan pembuatan batch dan sesi
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Dokumen ini memberikan panduan tentang cara memecahkan masalah umum yang mencegah
Google Cloud Serverless for Apache Spark memulai workload batch Spark dan sesi interaktif.
Ringkasan
Biasanya, saat batch atau sesi gagal dimulai, pesan error berikut akan ditampilkan:
Driver compute node failed to initialize for batch in 600 seconds
Pesan error ini menunjukkan bahwa driver Spark tidak dapat dimulai dalam periode waktu tunggu default 600 detik (10 menit).
Penyebab umum terkait dengan izin akun layanan, ketersediaan resource,
konfigurasi jaringan, atau properti Spark.
Penyebab kegagalan memulai batch dan sesi serta langkah-langkah pemecahan masalah
Bagian berikut mencantumkan penyebab umum kegagalan memulai batch dan sesi dengan tips pemecahan masalah untuk membantu Anda menyelesaikan masalah.
Izin akun layanan tidak memadai
Akun layanan yang digunakan oleh batch atau sesi Serverless for Apache Spark Anda memerlukan
peran IAM
tertentu yang mencakup izin untuk operasi dan akses Serverless for Apache Spark
ke Google Cloud resource. Jika akun layanan tidak memiliki peran yang diperlukan, driver Spark untuk batch atau sesi dapat gagal diinisialisasi.
Peran Worker yang diperlukan: Akun layanan batch atau sesi harus memiliki
peran Dataproc Worker (roles/dataproc.worker). Peran ini berisi
izin minimum yang diperlukan agar Serverless for Apache Spark dapat menyediakan dan
mengelola resource komputasi.
Izin Akses Data: Jika aplikasi Spark Anda membaca dari atau menulis ke Cloud Storage atau BigQuery, akun layanan memerlukan peran yang terkait dengan layanan tersebut:
Cloud Storage: Peran Storage Object Viewer (roles/storage.objectViewer)
diperlukan untuk membaca, dan peran Storage Object Creator (roles/storage.objectCreator)
atau peran Storage Object Admin (roles/storage.admin) diperlukan untuk menulis.
BigQuery: Peran BigQuery Data Viewer (roles/bigquery.dataViewer)
diperlukan untuk membaca dan peran BigQuery Data Editor (roles/bigquery.dataEditor)
diperlukan untuk menulis.
Izin Logging: Akun layanan memerlukan peran dengan izin untuk menulis log ke Cloud Logging. Biasanya, peran Logging Writer (roles/logging.logWriter) sudah cukup.
Buka halaman
IAM & Admin > IAM
di konsol Google Cloud , temukan akun layanan batch atau sesi,
lalu verifikasi bahwa akun tersebut memiliki peran yang diperlukan untuk operasi.
Berikan peran yang belum ada.
Kuota tidak mencukupi
Melebihi kuota khusus project atau region untuk Google Cloud Serverless untuk Apache Spark
atau resource Google Cloud lain dapat mencegah batch atau sesi baru dimulai.
Anda juga dapat menggunakan perintah gcloud compute quotas list untuk melihat
penggunaan dan batas saat ini untuk project dan region Anda:
gcloud compute quotas list --project=PROJECT_ID --filter="service:dataproc.googleapis.com"
Jika Anda berulang kali mencapai batas kuota, pertimbangkan untuk meminta penambahan kuota melalui konsol Google Cloud .
Masalah konfigurasi jaringan
Setelan jaringan yang salah, seperti konfigurasi VPC, Akses Google Pribadi, atau aturan firewall, dapat memblokir driver Spark agar tidak diinisialisasi atau terhubung ke layanan yang diperlukan.
Tips pemecahan masalah:
Pastikan jaringan dan subnet VPC yang ditentukan untuk batch atau sesi Anda dikonfigurasi dengan benar dan memiliki alamat IP yang tersedia dalam jumlah yang cukup.
Jika batch atau sesi Anda perlu mengakses Google API dan layanan Google tanpa melintasi internet publik, pastikan Akses Google Pribadi diaktifkan untuk subnet.
Tinjau aturan firewall VPC Anda untuk memverifikasi bahwa aturan tersebut tidak secara tidak sengaja memblokir komunikasi internal atau keluar ke Google API atau layanan eksternal yang diperlukan oleh aplikasi Spark Anda.
Masalah properti spark atau kode aplikasi tidak valid
Konfigurasi yang salah pada properti Spark, terutama yang terkait dengan resource driver, atau masalah dalam kode aplikasi Spark dapat menyebabkan kegagalan startup.
Tips pemecahan masalah:
Periksa nilai spark.driver.memory dan spark.driver.cores.
Pastikan batasnya wajar dan sesuai dengan DCU yang tersedia.
Nilai yang terlalu besar untuk properti ini dapat menyebabkan kehabisan resource dan kegagalan inisialisasi. Hapus properti Spark yang tidak perlu atau eksperimental untuk menyederhanakan proses penelusuran bug.
Coba jalankan aplikasi Spark "Hello World" untuk menentukan apakah masalahnya
terjadi karena penyiapan lingkungan Anda atau karena kompleksitas atau error kode.
Pastikan semua JAR aplikasi, file Python, atau dependensi yang ditentukan untuk batch atau sesi Anda berada di Cloud Storage dengan benar dan dapat diakses oleh akun layanan batch atau sesi.
Memeriksa log
Langkah penting dalam mendiagnosis kegagalan pembuatan batch adalah memeriksa
log mendetail di Cloud Logging.
Filter untuk Batch atau Sesi Serverless untuk Apache Spark:
Di drop-down Resource, pilih Cloud Dataproc Batch atau
Cloud Dataproc Session.
Filter menurut batch_id atau session_id untuk batch atau sesi yang gagal.
Anda juga dapat memfilter menurut project_id dan location (wilayah).
Cari entri log dengan jsonPayload.component="driver".
Log ini sering kali berisi pesan error atau stack trace tertentu yang dapat menunjukkan alasan kegagalan inisialisasi driver sebelum waktu tunggu 600 detik terjadi.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-08-25 UTC."],[],[],null,["# Troubleshoot batch and session creation failures\n\nThis document provides guidance on troubleshooting common issues that prevent\nGoogle Cloud Serverless for Apache Spark Spark batch workloads and interactive sessions from starting.\n\nOverview\n--------\n\nTypically, when a batch or session fails to start, it reports the\nfollowing error message: \n\n```\nDriver compute node failed to initialize for batch in 600 seconds\n```\n\nThis error message indicates that the Spark driver\ncouldn't start within the default timeout period of 600 seconds (10 minutes).\nCommon causes are related to service account permissions, resource availability,\nnetwork configuration, or Spark properties.\n\nBatch and session start failure causes and troubleshooting steps\n----------------------------------------------------------------\n\nThe following sections list common causes of batch and session start failures with\ntroubleshooting tips to help you resolve the issues.\n\n### Insufficient service account permissions\n\nThe service account used by your Serverless for Apache Spark batch or session requires specific\nIAM roles\nthat include permissions for Serverless for Apache Spark operation and access\nto Google Cloud resources. If the service account lacks the necessary roles,\nthe Spark driver for the batch or session can fail to initialize.\n\n- Required Worker role: The batch or session service account must have the **Dataproc Worker role** (`roles/dataproc.worker`). This role contains the minimum permissions needed for Serverless for Apache Spark to provision and manage compute resources.\n- Data Access Permissions: If your Spark application reads from or writes to Cloud Storage or BigQuery, the service account needs roles related to those services:\n - Cloud Storage: The **`Storage Object Viewer` role** (`roles/storage.objectViewer`) is needed for reading, and the **`Storage Object Creator` role** (`roles/storage.objectCreator`) or **`Storage Object Admin` role** (`roles/storage.admin`) is needed for writing.\n - BigQuery: The **`BigQuery Data Viewer` role** (`roles/bigquery.dataViewer`) is needed for reading and the **`BigQuery Data Editor` role** (`roles/bigquery.dataEditor`) is needed for writing.\n- Logging Permissions: The service account needs a role with permission to write logs to Cloud Logging. Typically, the **`Logging Writer` role** (`roles/logging.logWriter`) is sufficient.\n\nTroubleshooting tips:\n\n- Identify the batch or session [service account](/dataproc-serverless/docs/concepts/service-account). If not specified, it defaults to the [Compute Engine default service account](/compute/docs/access/service-accounts#default_service_account).\n- Go to the [**IAM \\& Admin \\\u003e IAM**](https://console.cloud.google.com/iam-admin/iam) page in the Google Cloud console, find the batch or session service account, and then verify that it has the necessary roles needed for operations. Grant any missing roles.\n\n### Insufficient quota\n\nExceeding project or region-specific quotas for Google Cloud Serverless for Apache Spark\nor other Google Cloud resources can prevent new batches or session from starting.\n\nTroubleshooting tips:\n\n- Review the [Google Cloud Serverless for Apache Spark quotas](/dataproc-serverless/quotas) page\n to understand limits on concurrent batches, DCUs, and shuffle storage.\n\n - You can also use the `gcloud compute quotas list` command to view current usage and limits for your project and region: \n\n ```\n gcloud compute quotas list --project=PROJECT_ID --filter=\"service:dataproc.googleapis.com\"\n ```\n- If you repeatedly hit quota limits, consider requesting a quota\n increase through the Google Cloud console.\n\n### Network configuration issues\n\nIncorrect network settings, such as VPC configuration, Private Google Access,\nor firewall rules, can block the Spark driver from initializing or connecting to\nnecessary services.\n\nTroubleshooting tips:\n\n- Verify that the VPC network and subnet specified for your batch or session are\n correctly configured and have sufficient IP addresses available.\n\n- If your batch or session needs to access Google APIs\n and services without traversing the public internet, verify\n Private Google Access is enabled for the subnet.\n\n | Serverless for Apache Spark batch workloads and interactive sessions run on VMs with internal IP addresses only and on a regional subnet with Private Google Access automatically enabled on the session subnet.\n\n \u003cbr /\u003e\n\n- Review your VPC firewall rules to verify they don't\n inadvertently block internal communication or egress to Google APIs or\n external services that are required by your Spark application.\n\n| **Tip:** To diagnose batch and network connectivity issues, also see [Troubleshoot batch and session connectivity](/dataproc-serverless/docs/support/troubleshoot-connectivity#network-configuration-issues).\n\n### Invalid spark properties or application code issues\n\nMisconfigured Spark properties, particularly those related to driver resources,\nor issues within your Spark application code can lead to startup failures.\n\nTroubleshooting tips:\n\n- Check [`spark.driver.memory` and `spark.driver.cores`](/dataproc-serverless/docs/concepts/properties#resource_allocation_properties) values.\n Verify they are within reasonable limits and align with available DCUs.\n Excessively large values for these properties can lead to resource\n exhaustion and initialization failures. Remove any unnecessary or\n experimental Spark properties to simplify debugging.\n\n- Try running a \"Hello World\" Spark application to determine if the issue\n is with your environment setup or due to code complexity or errors.\n\n- Verify that all application JARs, Python files,\n or dependencies specified for your batch or session are correctly\n located in Cloud Storage and are accessible by the\n batch or session service account.\n\nCheck logs\n----------\n\nA critical step in diagnosing batch creation failures is to examine\nthe detailed logs in Cloud Logging.\n\n1. Go to the [**Cloud Logging**](https://console.cloud.google.com/logs/viewer) page in the Google Cloud console.\n2. Filter for Serverless for Apache Spark Batches or Sessions:\n 1. In the **Resource** drop-down, select `Cloud Dataproc Batch` or `Cloud Dataproc Session`.\n 2. Filter by `batch_id` or `session_id` for the failed batch or session. You can also filter by `project_id` and `location` (region).\n3. Look for log entries with `jsonPayload.component=\"driver\"`. These logs often contain specific error messages or stack traces that can pinpoint the reason for the driver initialization failure before the 600-second timeout occurs."]]