Menjalankan alat kualifikasi Eksekusi Kueri Native

Untuk mengidentifikasi workload batch yang dapat mencapai waktu proses yang lebih cepat dengan Native Query Execution (NQE), Anda dapat menggunakan alat kualifikasi. Alat ini menganalisis log peristiwa Spark untuk memperkirakan potensi penghematan waktu proses dan mengidentifikasi operasi apa pun yang tidak didukung oleh mesin NQE.

Google Cloud menyediakan dua metode untuk menjalankan analisis kualifikasi: tugas kualifikasi dan skrip kualifikasi. Pendekatan yang direkomendasikan untuk sebagian besar pengguna adalah tugas kualifikasi, yang mengotomatiskan penemuan dan analisis workload batch. Skrip kualifikasi alternatif tersedia untuk kasus penggunaan tertentu dalam menganalisis file log peristiwa yang diketahui. Pilih metode yang paling sesuai dengan kasus penggunaan Anda:

  • Tugas Kualifikasi (Direkomendasikan): Ini adalah metode utama dan direkomendasikan. Tugas ini adalah tugas PySpark yang secara otomatis menemukan dan menganalisis workload batch terbaru di satu atau beberapa Google Cloud project dan region. Gunakan metode ini jika Anda ingin melakukan analisis luas tanpa perlu menemukan file log peristiwa satu per satu secara manual. Pendekatan ini ideal untuk evaluasi kesesuaian NQE skala besar.

  • Skrip Kualifikasi (Alternatif): Ini adalah metode alternatif untuk kasus penggunaan lanjutan atau tertentu. Skrip ini adalah skrip shell yang menganalisis satu file log peristiwa Spark atau semua log peristiwa dalam direktori Cloud Storage tertentu. Gunakan metode ini jika Anda memiliki jalur Cloud Storage ke log peristiwa yang ingin dianalisis.

Tugas kualifikasi

Tugas kualifikasi menyederhanakan analisis skala besar dengan memindai workload batch Managed Service untuk Apache Spark secara terprogram dan mengirimkan tugas analisis terdistribusi. Alat ini mengevaluasi tugas di seluruh organisasi Anda, sehingga Anda tidak perlu menemukan dan menentukan jalur log peristiwa secara manual.

Memberikan peran IAM

Agar tugas kualifikasi dapat mengakses metadata workload batch dan membaca log peristiwa Spark di Cloud Logging, akun layanan yang menjalankan workload harus memiliki peran IAM berikut yang diberikan di semua project yang akan dianalisis:

Mengirimkan tugas kualifikasi

Anda mengirimkan tugas kualifikasi menggunakan alat gcloud CLI. Tugas ini mencakup skrip PySpark dan file JAR yang dihosting di bucket Cloud Storage publik.

Anda dapat menjalankan tugas di salah satu lingkungan eksekusi berikut:

  • Sebagai workload batch Managed Service untuk Apache Spark. Ini adalah eksekusi tugas mandiri yang sederhana.

  • Sebagai tugas yang berjalan di cluster Managed Service untuk Apache Spark. Pendekatan ini dapat berguna untuk mengintegrasikan tugas ke dalam alur kerja.

Argumen tugas

Argumen Deskripsi Wajib? Nilai Default
--project-ids Satu Project ID atau daftar Project ID Google Cloud yang dipisahkan koma untuk memindai workload batch. Tidak Project tempat tugas kualifikasi berjalan.
--regions Satu region atau daftar region yang dipisahkan koma untuk dipindai dalam project yang ditentukan. Tidak Semua region dalam project yang ditentukan.
--start-time Tanggal mulai untuk memfilter batch. Hanya batch yang dibuat pada atau setelah tanggal ini (format: YYYY-MM-DD) yang akan dianalisis. Tidak Tidak ada filter tanggal mulai yang diterapkan.
--end-time Tanggal berakhir untuk memfilter batch. Hanya batch yang dibuat pada atau sebelum tanggal ini (format: YYYY-MM-DD) yang akan dianalisis. Tidak Tidak ada filter tanggal berakhir yang diterapkan.
--limit Jumlah maksimum batch yang akan dianalisis per region. Batch terbaru akan dianalisis terlebih dahulu. Tidak Semua batch yang cocok dengan kriteria filter lainnya akan dianalisis.
--output-gcs-path Jalur Cloud Storage (misalnya, gs://your-bucket/output/) tempat file hasil akan ditulis. Ya Tidak ada.
--input-file Jalur Cloud Storage ke file teks untuk analisis massal. Jika disediakan, argumen ini akan menggantikan semua argumen lain yang menentukan cakupan (--project-ids, --regions, --start-time, --end-time, --limit). Tidak Tidak ada.

Contoh tugas kualifikasi

  • Tugas batch Managed Service untuk Apache Spark untuk melakukan analisis ad-hoc sederhana. Argumen tugas dicantumkan setelah pemisah --.

    gcloud dataproc batches submit pyspark gs://qualification-tool/performance-boost-qualification.py \
        --project=PROJECT_ID \
        --region=REGION \
        --jars=gs://qualification-tool/dataproc-perfboost-qualification-1.2.jar \
        -- \
        --project-ids=COMMA_SEPARATED_PROJECT_IDS \
        --regions=COMMA_SEPARATED_REGIONS \
        --limit=MAX_BATCHES \
        --output-gcs-path=gs://BUCKET
    
  • Tugas batch Managed Service untuk Apache Spark untuk menganalisis hingga 50 batch terbaru yang ditemukan di sample_project di region us-central1. Hasilnya ditulis ke bucket di Cloud Storage. Argumen tugas dicantumkan setelah pemisah --.

    gcloud dataproc batches submit pyspark gs://qualification-tool/performance-boost-qualification.py \
        --project=PROJECT_ID \
        --region=US-CENTRAL1 \
        --jars=gs://qualification-tool/dataproc-perfboost-qualification-1.2.jar \
        -- \
        --project-ids=PROJECT_ID \
        --regions=US-CENTRAL1 \
        --limit=50 \
        --output-gcs-path=gs://BUCKET/
    
  • Tugas Managed Service untuk Apache Spark yang dikirimkan ke cluster Managed Service untuk Apache Spark untuk analisis massal dalam alur kerja analisis skala besar, berulang, atau otomatis. Argumen tugas ditempatkan di INPUT_FILE yang diupload ke BUCKET di Cloud Storage. Metode ini ideal untuk memindai rentang tanggal atau batas batch yang berbeda di berbagai project dan region dalam satu kali proses.

    gcloud dataproc jobs submit pyspark gs://qualification-tool/performance-boost-qualification.py \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --jars=gs://qualification-tool/dataproc-perfboost-qualification-1.2.jar \
        -- \
        --input-file=gs://INPUT_FILE \
        --output-gcs-path=gs://BUCKET
    

    Catatan:

    INPUT_FILE: Setiap baris dalam file mewakili analisis permintaan yang berbeda dan menggunakan format flag satu huruf yang diikuti dengan nilainya, seperti, -p PROJECT-ID -r REGION -s START_DATE -e END_DATE -l LIMITS.

    Contoh konten file input:

    -p project1 -r us-central1 -s 2024-12-01 -e 2024-12-15 -l 100
    -p project2 -r europe-west1 -s 2024-11-15 -l 50
    

    Argumen ini mengarahkan alat untuk menganalisis dua cakupan berikut:

    • Hingga 100 batch di project1 di region us-central1 yang dibuat antara 1 Desember 2025 dan 15 Desember 2025.
    • Hingga 50 batch di project2 di region europe-west1 yang dibuat pada atau setelah 15 November 2025.

Skrip kualifikasi

Gunakan metode ini jika Anda memiliki jalur Cloud Storage langsung ke log peristiwa Spark tertentu yang ingin dianalisis. Pendekatan ini mengharuskan Anda mendownload dan menjalankan skrip shell, run_qualification_tool.sh, di mesin lokal atau VM Compute Engine yang dikonfigurasi dengan akses ke file log peristiwa di Cloud Storage.

Lakukan langkah-langkah berikut untuk menjalankan skrip terhadap file peristiwa workload batch Managed Service untuk Apache Spark.

1.Salin run_qualification_tool.sh ke direktori lokal yang berisi file peristiwa Spark yang akan dianalisis.

  1. Jalankan skrip kualifikasi untuk menganalisis satu file peristiwa atau sekumpulan file peristiwa yang terdapat di direktori skrip.

    ./run_qualification_tool.sh -f EVENT_FILE_PATH/EVENT_FILE_NAME \
        -o CUSTOM_OUTPUT_DIRECTORY_PATH \
        -k SERVICE_ACCOUNT_KEY  \
        -x MEMORY_ALLOCATEDg  \
        -t PARALLEL_THREADS_TO_RUN
    

    Flag dan nilai:

    -f (wajib): Lihat Lokasi file peristiwa Spark untuk menemukan file peristiwa workload Spark.

    • EVENT_FILE_PATH (wajib kecuali jika EVENT_FILE_NAME ditentukan): Jalur file peristiwa yang akan dianalisis. Jika tidak diberikan, jalur file peristiwa diasumsikan sebagai direktori saat ini.

    • EVENT_FILE_NAME (wajib kecuali jika EVENT_FILE_PATH ditentukan): Nama file peristiwa yang akan dianalisis. Jika tidak diberikan, file peristiwa yang ditemukan secara rekursif di EVENT_FILE_PATH akan dianalisis.

    -o(opsional): Jika tidak diberikan, alat akan membuat atau menggunakan direktori output yang ada di direktori saat ini untuk menempatkan file output.

    • CUSTOM_OUTPUT_DIRECTORY_PATH: Jalur direktori output ke file output.

    -k (opsional):

    -x (opsional):

    • MEMORY_ALLOCATED: Memori dalam gigabyte yang akan dialokasikan ke alat. Secara default, alat ini menggunakan 80% memori kosong yang tersedia di sistem dan semua core mesin yang tersedia.

    -t(opsional):

    • PARALLEL_THREADS_TO_RUN: Jumlah thread paralel untuk dijalankan alat. Secara default, alat ini menjalankan semua core.

    Contoh penggunaan perintah:

    ./run_qualification_tool.sh -f gs://dataproc-temp-us-east1-9779/spark-job-history \
        -o perfboost-output -k /keys/event-file-key -x 34g -t 5
    

    Dalam contoh ini, alat kualifikasi melintasi direktori gs://dataproc-temp-us-east1-9779/spark-job-history, dan menganalisis file peristiwa Spark yang terdapat di direktori ini dan subdirektorinya. Akses ke direktori diberikan ke /keys/event-file-key. Alat ini menggunakan 34 GB memory untuk eksekusi, dan menjalankan 5 thread paralel.

Lokasi file peristiwa Spark

Lakukan salah satu langkah berikut untuk menemukan file peristiwa Spark untuk workload batch Managed Service untuk Apache Spark:

  1. Di Cloud Storage, temukan spark.eventLog.dir untuk workload, lalu download.

    1. Jika Anda tidak dapat menemukan spark.eventLog.dir, tetapkan spark.eventLog.dir ke lokasi Cloud Storage, lalu jalankan ulang workload dan download spark.eventLog.dir.
  2. Jika Anda telah mengonfigurasi Spark History Server untuk tugas batch:

    1. Buka Spark History Server, lalu pilih workload.
    2. Klik Download di kolom Event Log.

File output alat kualifikasi

Setelah analisis tugas atau skrip kualifikasi selesai, alat kualifikasi akan menempatkan file output berikut di direktori perfboost-output di direktori saat ini:

  • AppsRecommendedForBoost.tsv: Daftar aplikasi yang dipisahkan tab yang direkomendasikan untuk digunakan dengan Native Query Execution.

  • UnsupportedOperators.tsv: Daftar aplikasi yang dipisahkan tab yang tidak direkomendasikan untuk digunakan dengan Native Query Execution.

File output AppsRecommendedForBoost.tsv

Tabel berikut menunjukkan konten file output AppsRecommendedForBoost.tsv contoh. Tabel ini berisi baris untuk setiap aplikasi yang dianalisis.

Contoh file output AppsRecommendedForBoost.tsv:

applicationId applicationName rddPercentage unsupportedSqlPercentage totalTaskTime supportedTaskTime supportedSqlPercentage recommendedForBoost expectedRuntimeReduction
app-2024081/batches/083f6196248043938-000 projects/example.com:dev/locations/us-central1
6b4d6cae140f883c0
11c8e
0,00% 0,00% 548924253 548924253 100% TRUE 30,00%
app-2024081/batches/60381cab738021457-000 projects/example.com:dev/locations/us-central1
474113a1462b426bf
b3aeb
0,00% 0,00% 514401703 514401703 100% TRUE 30,00%

Deskripsi kolom:

  • applicationId: ApplicationID aplikasi Spark. Gunakan ini untuk mengidentifikasi workload batch yang sesuai.

  • applicationName: Nama aplikasi Spark.

  • rddPercentage: Persentase operasi RDD dalam aplikasi. Operasi RDD tidak didukung oleh Native Query Execution.

  • unsupportedSqlPercentage: Persentase operasi SQL yang tidak didukung oleh Native Query Execution.

  • totalTaskTime: Waktu tugas kumulatif dari semua tugas yang dijalankan selama aplikasi berjalan.

  • supportedTaskTime: Total waktu tugas yang didukung oleh Native Query Execution.

Kolom berikut memberikan informasi penting untuk membantu Anda menentukan apakah Native Query Execution dapat menguntungkan workload batch Anda:

  • supportedSqlPercentage: Persentase operasi SQL yang didukung oleh native query execution. Semakin tinggi persentasenya, semakin besar pengurangan waktu proses yang dapat dicapai dengan menjalankan aplikasi menggunakan Native Query Execution.

  • recommendedForBoost: Jika TRUE, menjalankan aplikasi dengan Native Query Execution direkomendasikan. Jika recommendedForBoost adalah FALSE, jangan gunakan Native Query Execution pada workload batch.

  • expectedRuntimeReduction: Perkiraan persentase pengurangan waktu proses aplikasi saat Anda menjalankan aplikasi dengan Native Query Execution.

File output UnsupportedOperators.tsv.

File output UnsupportedOperators.tsv berisi daftar operator yang digunakan dalam aplikasi workload yang tidak didukung oleh Native Query Execution. Setiap baris dalam file output mencantumkan operator yang tidak didukung.

Deskripsi kolom:

  • unsupportedOperator: Nama operator yang tidak didukung oleh Native Query Execution.

  • cumulativeCpuMs: Jumlah milidetik CPU yang digunakan selama eksekusi operator. Nilai ini mencerminkan tingkat kepentingan relatif operator dalam aplikasi.

  • count: Jumlah penggunaan operator dalam aplikasi.