Memantau dan memecahkan masalah workload Dataproc Serverless

Anda dapat memantau dan memecahkan masalah Serverless Dataproc untuk workload batch Spark menggunakan informasi dan alat yang dibahas di bagian berikut

Server Histori Persisten

Dataproc Serverless untuk Spark membuat resource komputasi yang diperlukan untuk menjalankan beban kerja, menjalankan beban kerja pada resource tersebut, lalu menghapus resource saat beban kerja selesai. Peristiwa dan metrik beban kerja tidak akan dipertahankan setelah beban kerja selesai. Namun, Anda dapat menggunakan Persistent History Server (PHS) untuk mempertahankan histori aplikasi workload (log peristiwa) di Cloud Storage.

Untuk menggunakan PHS dengan beban kerja batch, lakukan hal berikut:

  1. Membuat Server Histori Persisten (PHS) Dataproc.

  2. Tentukan PHS saat Anda mengirimkan beban kerja.

  3. Gunakan Gateway Komponen untuk terhubung ke PHS guna melihat detail aplikasi, tahapan penjadwal, detail tingkat tugas, serta informasi lingkungan dan eksekutor.

Dataproc Serverless untuk log Spark

Logging diaktifkan secara default di Dataproc Serverless untuk Spark, dan log workload akan tetap ada setelah workload selesai. Dataproc Serverless untuk Spark mengumpulkan log workload di Cloud Logging. Anda dapat mengakses log beban kerja spark, agent, output, dan container di bagian resource Cloud Dataproc Batch di Logs Explorer.

Contoh Serverless Dataproc untuk batch Spark:

Contoh pemilihan batch di Metrics Explorer.

Untuk mengetahui informasi selengkapnya, lihat log Dataproc.

Metrik workload

Secara default, Dataproc Serverless for 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 Batch details 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.

Contoh metrik batch di Metrics Explorer.

Metrik Spark

Metrik Spark yang tersedia mencakup metrik driver dan eksekutor Spark, serta metrik sistem. Metrik Spark yang tersedia diawali dengan custom.googleapis.com/.

Contoh metrik Spark di Metrics Explorer.

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 workload menggunakan Metrics Explorer di Konsol Google Cloud. Misalnya, Anda dapat membuat diagram untuk menampilkan disk:bytes_used, lalu memfilter menurut batch_id.

Cloud Monitoring

Monitoring menggunakan metadata dan metrik workload untuk memberikan insight tentang kondisi dan performa Dataproc Serverless untuk workload Spark. Metrik workload mencakup metrik Spark, metrik batch, dan metrik operasi.

Anda dapat menggunakan Cloud Monitoring di Konsol Google Cloud untuk mempelajari 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 Google Cloud yang berbeda-beda. Untuk informasi selengkapnya, lihat Membuat dan mengelola dasbor kustom.

Pemecahan masalah lanjutan (Pratinjau)

Bagian ini membahas fitur pratinjau pemecahan masalah lanjutan yang tersedia di Konsol Google Cloud, yang mencakup fitur pemecahan masalah yang didukung Gemini.

Akses ke fitur pratinjau

Untuk mendaftar ke rilis pratinjau fitur pemecahan masalah lanjutan, lengkapi dan kirimkan formulir Gemini di Pratinjau BigQuery. Setelah formulir disetujui, project yang tercantum dalam formulir tersebut akan memiliki akses ke fitur pratinjau.

Pratinjau harga

Tidak ada biaya tambahan untuk berpartisipasi dalam pratinjau. Biaya akan berlaku untuk fitur pratinjau berikut saat fitur tersebut tersedia secara umum (GA):

Pemberitahuan awal tentang tagihan GA akan dikirim ke alamat email yang Anda berikan dalam formulir pendaftaran pratinjau.

Persyaratan fitur

  • Pendaftaran: Anda harus mendaftar untuk menggunakan fitur ini.

  • Izin: Anda harus memiliki izin dataproc.batches.analyze.

    gcloud iam roles update CUSTOM_ROLE_ID --project=PROJECT_ID \
    --add-permissions="dataproc.batches.analyze"
    
  • Mengaktifkan pemecahan masalah yang dibantu Gemini Anda mengaktifkan pemecahan masalah yang dibantu Gemini saat mengirimkan setiap beban kerja batch Spark berulang menggunakan Google Cloud Console, gcloud CLI, atau Dataproc API.

Konsol

Lakukan langkah-langkah berikut untuk mengaktifkan pemecahan masalah yang didukung Gemini pada setiap beban kerja batch Spark yang berulang:

  1. Di konsol Google Cloud, buka halaman Batches Dataproc.

    Buka Batch Dataproc

  2. Untuk membuat beban kerja batch, klik Buat.

  3. Di bagian Penampung, isi nama Kelompok, yang mengidentifikasi batch sebagai salah satu rangkaian beban kerja berulang. Analisis yang dibantu Gemini diterapkan ke beban kerja kedua dan berikutnya yang dikirimkan dengan nama kelompok ini. Misalnya, tentukan TPCH-Query1 sebagai nama kelompok untuk beban kerja terjadwal yang menjalankan kueri TPC-H harian.

  4. Isi bagian lain di halaman Create batch sesuai kebutuhan, lalu klik Submit. Untuk informasi selengkapnya, lihat Mengirim beban kerja batch.

gcloud

Jalankan perintah gcloud dataproc batches submit gcloud CLI berikut secara lokal di jendela terminal atau di Cloud Shell untuk mengaktifkan pemecahan masalah yang dibantu Gemini pada setiap workload batch Spark yang 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, atau Spark-R.
  • REGION: region tempat beban kerja Anda akan dijalankan.
  • COHORT: nama kelompok, yang mengidentifikasi batch sebagai salah satu dari serangkaian beban kerja berulang. Analisis dengan bantuan Gemini diterapkan pada beban kerja kedua dan berikutnya yang dikirimkan dengan nama kelompok ini. Misalnya, tentukan TPCH Query 1 sebagai nama kelompok untuk workload terjadwal yang menjalankan kueri TPC-H harian.

API

Sertakan nama RuntimeConfig.cohort dalam permintaan batches.create untuk mengaktifkan pemecahan masalah yang didukung Gemini pada setiap workload batch Spark yang berulang. Analisis yang dibantu Gemini diterapkan ke beban kerja kedua dan berikutnya yang dikirimkan dengan nama kelompok ini. Misalnya, tentukan TPCH-Query1 sebagai nama kelompok untuk beban kerja terjadwal yang menjalankan kueri TPC-H harian.

Contoh:

...
runtimeConfig:
  cohort: TPCH-Query1
...

Fitur pemecahan masalah dengan bantuan Gemini

Fitur pratinjau pemecahan masalah dengan bantuan Gemini berikut tersedia di halaman daftar Batch details dan Batches di Konsol Google Cloud.

  • Tab Investigasi: Tab Investigasi di halaman Detail batch menyediakan bagian Ringkasan Kondisi (Pratinjau) dengan panel pemecahan masalah yang dibantu Gemini berikut:

    • Apa yang di-tuning otomatis? Jika Anda mengaktifkan penyesuaian otomatis pada satu atau beberapa workload, panel ini akan menampilkan perubahan penyesuaian otomatis terbaru yang diterapkan pada workload yang sedang berjalan, telah selesai, dan gagal.

    Panel investigasi penyesuaian otomatis.

    • Apa yang terjadi sekarang? dan Apa yang dapat saya lakukan? Klik Ask Gemini untuk meminta rekomendasi guna membantu memperbaiki workload yang gagal atau meningkatkan workload yang berhasil tetapi lambat.

    Tombol Tanyakan Gemini.

    Jika Anda mengklik Ask Gemini, Gemini akan menghasilkan ringkasan error, anomali, atau sorotan dari log workload, metrik Spark, dan peristiwa Spark. Gemini juga dapat menampilkan daftar langkah-langkah yang direkomendasikan untuk memperbaiki beban kerja yang gagal atau meningkatkan performa beban kerja yang berhasil, tetapi lambat.

    Insight yang dibuat oleh Gemini.

  • Kolom pemecahan masalah yang dibantu Gemini: Sebagai bagian dari rilis pratinjau, halaman daftar Batches Dataproc di Google Cloud Console menyertakan kolom What was Autotuned, What is happening now?, dan What can I do about it?.

    Batch mencantumkan kolom Gemini.

    Tombol Ask Gemini ditampilkan dan diaktifkan hanya jika batch yang selesai dalam status Failed,Cancelled, atau Succeeded. Jika Anda mengklik Ask Gemini, Gemini akan menghasilkan ringkasan error, anomali, atau sorotan dari log workload, metrik Spark, dan peristiwa Spark. Gemini juga dapat menampilkan daftar langkah-langkah yang direkomendasikan untuk memperbaiki beban kerja yang gagal atau meningkatkan performa beban kerja yang berhasil, tetapi lambat.

Sorotan metrik batch

Sebagai bagian dari rilis pratinjau, halaman Batch details di Konsol Google Cloud menyertakan diagram yang menampilkan nilai metrik workload batch yang penting. Diagram metrik diisi dengan nilai setelah batch selesai.

Dasbor metrik batch.

Tabel metrik

Tabel berikut mencantumkan metrik beban kerja Spark yang ditampilkan di halaman Detail batch di Konsol Google Cloud, dan menjelaskan bagaimana 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 JVM GC (pembersihan sampah memori) hingga runtime per eksekutor. Rasio tinggi dapat mengindikasikan kebocoran memori dalam tugas yang dijalankan pada eksekutor tertentu atau struktur data yang tidak efisien, yang dapat menyebabkan churn objek yang tinggi.
Byte Disk yang Tumpahan Metrik ini menunjukkan jumlah total byte {i>disk<i} yang tersebar di berbagai eksekutor. Jika {i>executor<i} menunjukkan jumlah byte {i>disk<i} yang tinggi, ini dapat menunjukkan kecondongan data. Jika metrik meningkat seiring waktu, hal ini dapat menunjukkan bahwa ada stage dengan tekanan memori atau kebocoran memori.
Byte 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 di mana penggabungan yang direplikasi menyebabkan penguatan data pada eksekutor tertentu.
Catatan yang Dibaca dan Ditulis Metrik ini menunjukkan kumpulan data yang dibaca dan ditulis per eksekutor. Jumlah rekaman yang besar yang dibaca dengan jumlah rekaman yang rendah dapat menunjukkan bottleneck dalam pemrosesan logika pada eksekutor tertentu, yang menyebabkan kumpulan data 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 Tulis Acak terhadap Waktu Proses Metrik ini menunjukkan jumlah waktu yang dihabiskan eksekutor dalam runtime shuffle dibandingkan dengan runtime secara keseluruhan. Jika nilai ini tinggi untuk beberapa eksekutor, nilai tersebut dapat menunjukkan kecondongan data atau serialisasi data yang tidak efisien. Anda dapat mengidentifikasi stage dengan waktu penulisan acak yang panjang di UI Spark. Cari tugas {i>outlier <i}dalam tahap-tahap tersebut yang membutuhkan waktu lebih dari waktu rata-rata untuk menyelesaikannya. Periksa apakah eksekutor dengan waktu penulisan shuffle yang tinggi juga menunjukkan aktivitas I/O disk yang tinggi. Langkah serialisasi dan partisi tambahan yang lebih efisien mungkin dapat membantu. Penulisan kumpulan data yang sangat besar dibandingkan dengan pembacaan kumpulan data dapat mengindikasikan duplikasi data yang tidak diinginkan karena penggabungan yang tidak efisien atau transformasi yang salah.
Metrik di tingkat Aplikasi
Kemajuan Tahapan Metrik ini menunjukkan jumlah tahap dalam tahap yang gagal, menunggu, dan berjalan. Sejumlah besar tahap yang gagal atau menunggu dapat menunjukkan kecondongan data. Periksa partisi data, dan debug alasan kegagalan stage menggunakan tab Stages di UI Spark.
Eksekutor Spark Batch Metrik ini menunjukkan jumlah eksekutor yang mungkin diperlukan dibandingkan jumlah eksekutor yang berjalan. Perbedaan besar antara eksekutor yang diwajibkan dan eksekutor yang sedang berjalan dapat menunjukkan masalah penskalaan otomatis.
Metrik di tingkat VM
Memori Terpakai 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 eksekutor kehabisan memori, yang dapat menyebabkan tingginya tumpahan disk dan runtime workload yang lebih lambat. Menggunakan UI Spark untuk menganalisis eksekutor guna memeriksa waktu GC yang tinggi dan kegagalan tugas yang tinggi. Lakukan debug pada kode Spark untuk penyimpanan dalam cache set data berukuran besar dan siaran variabel yang tidak perlu.

Log tugas

Sebagai bagian dari rilis pratinjau, halaman Detail batch di Konsol Google Cloud mencantumkan log tugas (batch workload). Log ini mencakup peringatan dan error yang difilter dari output workload dan log Spark. Anda dapat memilih log Severity, menambahkan Filter, lalu mengklik ikon View in Logs Explorer untuk membuka log batch yang dipilih di Logs Explorer.

Contoh: Logs Explorer akan terbuka setelah memilih Errors dari pemilih Tingkat keparahan pada halaman Batch details di Konsol Google Cloud.

Penjelajah log batch.

UI Spark (Pratinjau)

Jika mendaftarkan project di fitur pratinjau Spark UI, Anda dapat melihat UI Spark di Konsol Google Cloud tanpa harus membuat cluster Dataproc PHS (Persistent History Server). UI Spark mengumpulkan detail eksekusi Spark dari workload batch. Untuk mengetahui informasi selengkapnya, lihat Panduan Pengguna yang didistribusikan kepada pelanggan terdaftar sebagai bagian dari rilis pratinjau UI Spark.