Dokumen ini menjelaskan cara memantau dan memecahkan masalah Google Cloud Serverless untuk Apache Spark batch workload menggunakan UI Spark.
UI Spark
UI Spark mengumpulkan detail eksekusi Apache Spark dari workload batch Serverless untuk Apache Spark. Fitur Spark UI tidak dikenai biaya dan diaktifkan secara default.
Data yang dikumpulkan oleh fitur Spark UI dipertahankan selama 90 hari. Anda dapat menggunakan antarmuka web ini untuk memantau dan men-debug workload Spark tanpa harus membuat Persistent History Server.
Izin dan peran Identity and Access Management yang diperlukan
Izin berikut diperlukan untuk menggunakan fitur UI Spark dengan workload batch.
Izin pengumpulan data:
dataproc.batches.sparkApplicationWrite
. Izin ini harus diberikan ke akun layanan yang menjalankan beban kerja batch. Izin ini disertakan dalam peranDataproc Worker
, yang otomatis diberikan ke akun layanan default Compute Engine yang digunakan Serverless for Apache Spark secara default (lihat Akun layanan Serverless for Apache Spark). Namun, jika Anda menentukan akun layanan kustom untuk workload batch, Anda harus menambahkan izindataproc.batches.sparkApplicationWrite
ke akun layanan tersebut (biasanya, dengan memberikan peranWorker
Dataproc ke akun layanan).Izin akses UI Spark:
dataproc.batches.sparkApplicationRead
. Izin ini harus diberikan kepada pengguna untuk mengakses UI Spark di konsolGoogle Cloud . Izin ini disertakan dalam peranDataproc Viewer
,Dataproc Editor
, danDataproc Administrator
. Untuk membuka UI Spark di konsol Google Cloud , Anda harus memiliki salah satu peran ini atau memiliki peran kustom yang mencakup izin ini.
Membuka UI Spark
Halaman UI Spark tersedia di beban kerja batch konsol Google Cloud .
Buka halaman Sesi interaktif Serverless untuk Apache Spark.
Klik ID Batch untuk membuka halaman detail batch.
Klik Lihat UI Spark di menu atas.
Tombol Lihat UI Spark dinonaktifkan dalam kasus berikut:
- Jika izin yang diperlukan tidak diberikan
- Jika Anda menghapus centang pada kotak Aktifkan UI Spark di halaman Detail batch
- Jika Anda menetapkan properti
spark.dataproc.appContext.enabled
kefalse
saat Anda mengirimkan beban kerja batch
Server Histori Persisten
Serverless untuk Apache Spark membuat resource komputasi yang diperlukan untuk menjalankan workload, menjalankan workload pada resource tersebut, lalu menghapus resource saat workload selesai. Metrik dan peristiwa beban kerja tidak dipertahankan setelah beban kerja selesai. Namun, Anda dapat menggunakan Persistent History Server (PHS) untuk menyimpan histori aplikasi workload (log peristiwa) di Cloud Storage.
Untuk menggunakan PHS dengan workload batch, lakukan langkah-langkah berikut:
Tentukan PHS Anda saat Anda mengirimkan workload.
Gunakan Component Gateway untuk terhubung ke PHS guna melihat detail aplikasi, tahap penjadwal, detail tingkat tugas, serta informasi lingkungan dan eksekutor.
Log Serverless untuk Apache Spark
Logging diaktifkan secara default di Serverless untuk Apache Spark, dan log workload tetap ada setelah workload selesai. Serverless untuk Apache Spark mengumpulkan log workload di Cloud Logging.
Anda dapat mengakses log Serverless untuk Apache Spark di bagian resource
Cloud Dataproc Batch
di Logs Explorer.
Membuat kueri log Serverless untuk Apache Spark
Logs Explorer di konsol Google Cloud menyediakan panel kueri untuk membantu Anda membuat kueri guna memeriksa log beban kerja batch. Berikut adalah langkah-langkah yang dapat Anda ikuti untuk membuat kueri guna memeriksa log workload batch:
- Project Anda saat ini dipilih. Anda dapat mengklik Perbaiki cakupan Project untuk memilih project lain.
Tentukan kueri log batch.
Gunakan menu filter untuk memfilter workload batch.
Di bagian All resources, pilih resource Cloud Dataproc Batch.
Di panel Pilih resource, pilih batch LOCATION, lalu BATCH ID. Parameter batch ini tercantum di halaman Batch Dataproc di konsol Google Cloud .
Klik Terapkan.
Di bagian Select log names, masukkan
dataproc.googleapis.com
di kotak Search log names untuk membatasi jenis log yang akan dikueri. Pilih satu atau beberapa nama file log yang tercantum.
Gunakan editor kueri untuk memfilter log khusus VM.
Tentukan jenis resource dan nama resource VM seperti yang ditunjukkan pada contoh berikut:
Catatan:resource.type="cloud_dataproc_batch" labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCH_UUID-VM_SUFFIX"
- BATCH_UUID: UUID batch tercantum di halaman Detail batch di konsol Google Cloud , yang terbuka saat Anda mengklik ID Batch di halaman Batch.
Log batch juga mencantumkan UUID batch dalam nama resource VM. Berikut adalah contoh dari batch driver.log:
- BATCH_UUID: UUID batch tercantum di halaman Detail batch di konsol Google Cloud , yang terbuka saat Anda mengklik ID Batch di halaman Batch.
Klik Run query.
Jenis log dan contoh kueri Serverless for Apache Spark
Daftar berikut menjelaskan berbagai jenis log Serverless for Apache Spark dan memberikan contoh kueri Logs Explorer untuk setiap jenis log.
dataproc.googleapis.com/output
: File log ini berisi output beban kerja batch. Serverless untuk Apache Spark mengalirkan output batch ke namespaceoutput
, dan menetapkan nama file keJOB_ID.driver.log
.Contoh kueri Logs Explorer untuk log output:
resource.type="cloud_dataproc_batch" resource.labels.location="REGION" resource.labels.batch_id="BATCH_ID" logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Foutput"
dataproc.googleapis.com/spark
: Namespacespark
mengagregasi log Spark untuk daemon dan eksekutor yang berjalan di VM master dan pekerja cluster Dataproc. Setiap entri log menyertakan label komponenmaster
,worker
, atauexecutor
untuk mengidentifikasi sumber log, sebagai berikut:executor
: Log dari eksekutor kode pengguna. Biasanya, ini adalah log terdistribusi.master
: Log dari master pengelola resource mandiri Spark, yang serupa dengan logResourceManager
YARN Dataproc di Compute Engine.worker
: Log dari pekerja pengelola resource mandiri Spark, yang serupa dengan logNodeManager
YARN Dataproc di Compute Engine.
Contoh kueri Logs Explorer untuk semua log di namespace
spark
:resource.type="cloud_dataproc_batch" resource.labels.location="REGION" resource.labels.batch_id="BATCH_ID" logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fspark"
Contoh kueri Logs Explorer untuk log komponen mandiri Spark di namespace
spark
:resource.type="cloud_dataproc_batch" resource.labels.location="REGION" resource.labels.batch_id="BATCH_ID" logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fspark" jsonPayload.component="COMPONENT"
dataproc.googleapis.com/startup
: Namespacestartup
mencakup log startup batch (cluster). Semua log skrip inisialisasi disertakan. Komponen diidentifikasi berdasarkan label, misalnya: Contoh kueri Logs Explorer untuk log startup di VM tertentu:startup-script[855]: ... activate-component-spark[3050]: ... enable spark-worker
resource.type="cloud_dataproc_batch" resource.labels.location="REGION" resource.labels.batch_id="BATCH_ID" logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fstartup" labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCH_UUID-VM_SUFFIX"
dataproc.googleapis.com/agent
: Namespaceagent
menggabungkan log agen Dataproc. Setiap entri log menyertakan label nama file yang mengidentifikasi sumber log.Contoh kueri Logs Explorer untuk log agen yang dihasilkan oleh VM pekerja tertentu:
resource.type="cloud_dataproc_batch" resource.labels.location="REGION" resource.labels.batch_id="BATCH_ID" logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fagent" labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCHUUID-wWORKER#"
dataproc.googleapis.com/autoscaler
: Namespaceautoscaler
menggabungkan log autoscaler Serverless for Apache Spark.Contoh kueri Logs Explorer untuk log agen yang dihasilkan oleh VM pekerja tertentu:
resource.type="cloud_dataproc_batch" resource.labels.location="REGION" resource.labels.batch_id="BATCH_ID" logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fautoscaler" labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCHUUID-wWORKER#"
Untuk mengetahui informasi selengkapnya, lihat Log Dataproc.
Log audit Serverless untuk Apache Spark
Untuk mengetahui informasi tentang log audit Serverless untuk Apache Spark, lihat Logging audit Dataproc.
Metrik workload
Secara default, Serverless untuk Apache Spark mengaktifkan pengumpulan metrik Spark yang tersedia, kecuali jika Anda menggunakan properti pengumpulan metrik Spark untuk menonaktifkan atau mengganti pengumpulan satu atau beberapa metrik Spark.
Anda dapat melihat metrik beban kerja dari Metrics Explorer atau halaman Detail batch di konsol Google Cloud .
Metrik batch
Metrik resource batch
Dataproc memberikan insight tentang resource batch, seperti jumlah eksekutor batch. Metrik batch diawali dengan
dataproc.googleapis.com/batch
.
Metrik Spark
Metrik Spark yang tersedia
mencakup metrik driver dan eksekutor Spark, serta metrik sistem. Metrik Spark yang tersedia diawali
dengan custom.googleapis.com/
.
Menyiapkan pemberitahuan metrik
Anda dapat membuat pemberitahuan metrik Dataproc untuk menerima pemberitahuan tentang masalah beban kerja.
Membuat diagram
Anda dapat membuat diagram yang memvisualisasikan metrik beban kerja menggunakan
Metrics Explorer di
konsolGoogle Cloud . Misalnya, Anda dapat
membuat diagram untuk menampilkan disk:bytes_used
, lalu memfilter menurut batch_id
.
Cloud Monitoring
Monitoring menggunakan metrik dan metadata workload untuk memberikan insight tentang kondisi dan performa workload Serverless untuk Apache Spark. Metrik beban kerja mencakup metrik Spark, metrik batch, dan metrik operasi.
Anda dapat menggunakan Cloud Monitoring di konsol Google Cloud untuk menjelajahi metrik, menambahkan diagram, membuat dasbor, dan membuat pemberitahuan.
Membuat dasbor
Anda dapat membuat dasbor untuk memantau beban kerja menggunakan metrik dari beberapa project dan produk yang berbeda. Google Cloud Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola dasbor kustom.
Gemini Cloud Assist (Pratinjau)
Investigasi Gemini Cloud Assist saat ini dalam pratinjau pribadi. Fitur Investigasi untuk batch Serverless for Apache Spark tersedia di region berikut:
- asia-east1
- asia-southeast1
- europe-west1
- us-central1
Fitur ini memanfaatkan kemampuan canggih Gemini untuk membantu Anda menyelesaikan tugas pemecahan masalah berikut:
- Buat penyelidikan pemecahan masalah dari daftar Batch dan halaman Detail Batch di konsol Google Cloud untuk tugas batch Serverless Spark yang gagal dan lambat dari beberapa platform, termasuk chat dan log.
- Tambahkan deskripsi konteks bahasa alami ke masalah sebelum menjalankan penyelidikan.
- Menjalankan penyelidikan untuk mendapatkan insight Gemini tentang penyebab utama masalah dan perbaikan yang direkomendasikan.
- Buat kasus dukungan dengan lancar.
Untuk mempelajari lebih lanjut, lihat Selengkapnya tentang Gemini.
Akses ke fitur pratinjau
Untuk mendaftar ke rilis pratinjau fitur Gemini Cloud Assist, kirimkan formulir Program Penguji Tepercaya Gemini Cloud Assist. Tim Google Cloud akan menghubungi Anda untuk menjelaskan langkah-langkah selanjutnya.
Pemecahan masalah lanjutan (Pratinjau)
Bagian ini membahas fitur pemecahan masalah lanjutan (Pratinjau) yang tersedia di konsol Google Cloud . Fitur ini mencakup pemecahan masalah yang dibantu Gemini untuk Serverless for Apache Spark, yang merupakan bagian dari penawaran Gemini in BigQuery.
Akses ke fitur pratinjau
Untuk mendaftar ke rilis pratinjau fitur pemecahan masalah lanjutan, kirimkan formulir Program Penguji Tepercaya Gemini Cloud Assist. Tim Google Cloud akan menghubungi Anda untuk menjelaskan langkah-langkah selanjutnya.
Pratinjau harga
Tidak ada biaya tambahan untuk berpartisipasi dalam pratinjau pribadi. Biaya akan berlaku untuk fitur berikut saat fitur tersebut tersedia secara umum (GA).
- Pemecahan masalah yang didukung Gemini untuk Serverless for Apache Spark
- Sorotan metrik batch
- Log tugas
Pemberitahuan awal tentang rilis GA dan biaya GA akan dikirim ke alamat email yang Anda berikan di formulir pendaftaran pratinjau.
Persyaratan fitur
Pendaftaran: Anda harus mendaftar untuk menggunakan fitur ini.
Izin: Anda harus memiliki izin
dataproc.batches.analyze
.Jika memiliki peran bawaan
roles/dataproc.admin
,roles/dataproc.editor
, atauroles/dataproc.viewer
, Anda memiliki izin yang diperlukan. Anda tidak perlu melakukan tindakan lebih lanjut.Jika Anda menggunakan peran khusus untuk mengakses layanan Dataproc, peran khusus tersebut harus memiliki izin
dataproc.batches.analyze
. Anda dapat menggunakan gcloud CLI untuk menambahkan izin, seperti yang ditunjukkan dalam perintah berikut, yang menambahkan izin di level project:
gcloud iam roles update CUSTOM_ROLE_ID --project=PROJECT_ID \ --add-permissions="dataproc.batches.analyze"
Mengaktifkan pemecahan masalah yang dibantu Gemini untuk Serverless for Apache Spark: Anda mengaktifkan pemecahan masalah yang dibantu Gemini untuk Serverless for Apache Spark saat mengirimkan setiap workload batch Spark berulang menggunakanGoogle Cloud konsol, gcloud CLI, atau Dataproc API. Setelah fitur ini diaktifkan pada beban kerja batch berulang, Dataproc akan menyimpan salinan log beban kerja selama 30 hari, dan menggunakan data log yang disimpan untuk memberikan pemecahan masalah yang dibantu Gemini untuk beban kerja. Untuk mengetahui informasi tentang konten log workload Spark, lihat Log Dataproc Serverless.
Konsol
Lakukan langkah-langkah berikut untuk mengaktifkan pemecahan masalah yang dibantu Gemini pada setiap workload batch Spark berulang:
Di konsol Google Cloud , buka halaman Batch Dataproc.
Untuk membuat workload batch, klik Buat.
Di bagian Container, isi nama Cohort, yang mengidentifikasi batch sebagai salah satu dari serangkaian workload berulang. Analisis yang dibantu Gemini diterapkan pada workload kedua dan berikutnya yang dikirimkan dengan nama kelompok ini. Misalnya, tentukan
TPCH-Query1
sebagai nama kohor untuk workload terjadwal yang menjalankan kueri TPC-H harian.Isi bagian lain di halaman Buat batch sesuai kebutuhan, lalu klik Kirim. Untuk mengetahui informasi selengkapnya, lihat Mengirimkan workload batch.
gcloud
Jalankan perintah gcloud CLI
gcloud dataproc batches submit
berikut secara lokal di jendela terminal atau di Cloud Shell
untuk mengaktifkan pemecahan masalah yang dibantu Gemini pada setiap workload batch Spark berulang:
gcloud dataproc batches submit COMMAND \ --region=REGION \ --cohort=COHORT \ other arguments ...
Ganti kode berikut:
- COMMAND: jenis beban kerja Spark, seperti
Spark
,PySpark
,Spark-Sql
, atauSpark-R
. - REGION: region tempat workload Anda akan berjalan.
- COHORT: nama kohor, yang
mengidentifikasi batch sebagai salah satu dari serangkaian beban kerja berulang.
Analisis yang dibantu Gemini diterapkan pada workload kedua dan berikutnya yang dikirimkan
dengan nama kelompok ini. Misalnya, tentukan
TPCH Query 1
sebagai nama kohor untuk workload terjadwal yang menjalankan kueri TPC-H harian.
API
Sertakan nama RuntimeConfig.cohort
dalam permintaan batches.create
untuk mengaktifkan pemecahan masalah yang dibantu Gemini pada setiap beban kerja batch Spark
yang berulang. Analisis yang dibantu Gemini diterapkan pada workload kedua dan berikutnya yang dikirimkan dengan nama kelompok ini. Misalnya, tentukan TPCH-Query1
sebagai nama kohor
untuk workload terjadwal yang menjalankan kueri
TPC-H harian.
Contoh:
...
runtimeConfig:
cohort: TPCH-Query1
...
Pemecahan masalah yang dibantu Gemini untuk Serverless for Apache Spark
Fitur pratinjau pemecahan masalah yang dibantu Gemini berikut tersedia di halaman daftar Detail batch dan Batch di konsol Google Cloud .
Tab Selidiki: Tab Selidiki di halaman Detail batch menyediakan bagian Ringkasan Kondisi (Pratinjau) dengan panel pemecahan masalah yang dibantu Gemini berikut:
- Apa yang terjadi sekarang? dan Apa yang dapat saya lakukan? Klik Minta Gemini untuk meminta rekomendasi guna membantu memperbaiki workload yang gagal atau meningkatkan kualitas workload yang berhasil tetapi lambat.
Jika Anda mengklik Tanya Gemini, Gemini akan membuat ringkasan error, anomali, atau sorotan dari log beban kerja, metrik Spark, dan peristiwa Spark. Google Cloud Gemini untuk Google Cloud juga dapat menampilkan daftar langkah-langkah yang direkomendasikan yang dapat Anda lakukan untuk memperbaiki workload yang gagal atau meningkatkan performa workload yang berhasil, tetapi lambat.
Kolom pemecahan masalah yang dibantu Gemini: Sebagai bagian dari rilis pratinjau, halaman daftar Batch Dataproc di konsolGoogle Cloud menyertakan kolom
What is happening now?
danWhat can I do about it?
.Tombol Minta Gemini ditampilkan dan diaktifkan hanya jika batch yang selesai berada dalam status
Failed
,Cancelled
, atauSucceeded
. Jika Anda mengklik Tanya Gemini, Gemini akan membuat ringkasan error, anomali, atau poin penting dari log beban kerja, metrik Spark, dan peristiwa Spark. Google Cloud Gemini untuk Google Cloud juga dapat menampilkan daftar langkah-langkah yang direkomendasikan yang dapat Anda lakukan untuk memperbaiki workload yang gagal atau meningkatkan performa workload yang berhasil, tetapi lambat.
Sorotan metrik batch
Sebagai bagian dari rilis pratinjau, halaman Detail batch di konsol Google Cloud mencakup diagram yang menampilkan nilai metrik workload batch penting. Diagram metrik diisi dengan nilai setelah batch selesai.
Tabel berikut mencantumkan metrik workload Spark yang ditampilkan di halaman Detail batch di konsol Google Cloud , dan menjelaskan cara nilai metrik dapat memberikan insight tentang status dan performa workload.
Metrik | Apa yang ditampilkan? |
---|---|
Metrik di tingkat Executor | |
Rasio Waktu GC JVM terhadap Runtime | Metrik ini menunjukkan rasio waktu GC (pengumpulan sampah) JVM terhadap runtime per eksekutor. Rasio yang tinggi dapat menunjukkan kebocoran memori dalam tugas yang berjalan di executor tertentu atau struktur data yang tidak efisien, yang dapat menyebabkan churn objek yang tinggi. |
Byte Disk yang Ditumpahkan | Metrik ini menunjukkan total jumlah byte disk yang tumpah di berbagai eksekutor. Jika eksekutor menunjukkan byte disk yang tumpah dalam jumlah besar, hal ini dapat mengindikasikan kemiringan data. Jika metrik meningkat dari waktu ke waktu, hal ini dapat menunjukkan bahwa ada tahap dengan tekanan memori atau kebocoran memori. |
Byte yang Dibaca dan Ditulis | Metrik ini menunjukkan byte yang ditulis versus byte yang dibaca per eksekutor. Perbedaan besar dalam byte yang dibaca atau ditulis dapat menunjukkan skenario saat gabungan yang direplikasi menyebabkan amplifikasi data pada eksekutor tertentu. |
Data yang Dibaca dan Ditulis | Metrik ini menampilkan data yang dibaca dan ditulis per eksekutor. Jumlah besar yang mencatat pembacaan dengan jumlah kecil catatan yang ditulis dapat menunjukkan hambatan dalam logika pemrosesan pada eksekutor tertentu, sehingga menyebabkan catatan dibaca saat menunggu. Eksekutor yang secara konsisten tertinggal dalam pembacaan dan penulisan dapat menunjukkan pertentangan resource pada node tersebut atau inefisiensi kode khusus eksekutor. |
Rasio Waktu Penulisan Acak terhadap Waktu Proses | Metrik ini menunjukkan jumlah waktu yang dihabiskan oleh executor dalam shuffle runtime dibandingkan dengan runtime keseluruhan. Jika nilai ini tinggi untuk beberapa eksekutor, hal ini dapat menunjukkan kemiringan data atau serialisasi data yang tidak efisien. Anda dapat mengidentifikasi tahap dengan waktu penulisan shuffle yang lama di UI Spark. Cari tugas pencilan dalam tahap tersebut yang memerlukan waktu lebih lama dari rata-rata untuk diselesaikan. Periksa apakah eksekutor dengan waktu penulisan shuffle yang tinggi juga menunjukkan aktivitas I/O disk yang tinggi. Serialisasi yang lebih efisien dan langkah-langkah partisi tambahan dapat membantu. Penulisan kumpulan data yang sangat besar dibandingkan dengan pembacaan kumpulan data dapat menunjukkan duplikasi data yang tidak diinginkan karena gabungan yang tidak efisien atau transformasi yang salah. |
Metrik di tingkat Aplikasi | |
Progres Tahapan | Metrik ini menunjukkan jumlah tahap dalam tahap yang gagal, menunggu, dan berjalan. Sejumlah besar tahap yang gagal atau menunggu dapat menunjukkan penyimpangan data. Periksa partisi data, dan debug alasan kegagalan tahap menggunakan tab Stages di UI Spark. |
Batch Spark Executor | Metrik ini menunjukkan jumlah eksekutor yang mungkin diperlukan dibandingkan dengan jumlah eksekutor yang berjalan. Perbedaan besar antara eksekutor yang diperlukan dan yang berjalan dapat menunjukkan masalah penskalaan otomatis. |
Metrik di tingkat VM | |
Memori yang Digunakan | Metrik ini menunjukkan persentase memori VM yang digunakan. Jika persentase master tinggi, hal ini dapat menunjukkan bahwa driver mengalami tekanan memori. Untuk node VM lainnya, persentase yang tinggi dapat menunjukkan bahwa executor kehabisan memori, yang dapat menyebabkan tumpahan disk yang tinggi dan runtime workload yang lebih lambat. Gunakan UI Spark untuk menganalisis eksekutor guna memeriksa waktu GC yang tinggi dan kegagalan tugas yang tinggi. Selain itu, debug kode Spark untuk caching set data besar dan siaran variabel yang tidak perlu. |
Log tugas
Sebagai bagian dari rilis pratinjau, halaman Detail batch di konsol Google Cloud mencantumkan log tugas (workload batch). Log mencakup peringatan dan error yang difilter dari output beban kerja dan log Spark. Anda dapat memilih Severity log, menambahkan Filter, lalu mengklik ikon View in Logs Explorer untuk membuka log batch yang dipilih di Logs Explorer.

Contoh: Logs Explorer terbuka setelah memilih Errors
dari pemilih Tingkat keparahan di halaman Detail batch di konsol Google Cloud .