Dokumen ini memberikan informasi tentang penyetelan otomatis workload batch Serverless for Apache Spark. Mengoptimalkan workload Spark untuk performa dan ketahanan bisa menjadi tantangan karena banyaknya opsi konfigurasi Spark dan sulitnya menilai dampak opsi tersebut terhadap workload. Penyesuaian otomatis Serverless for Apache Spark memberikan alternatif untuk konfigurasi workload manual dengan menerapkan setelan konfigurasi Spark secara otomatis ke workload Spark berulang berdasarkan praktik terbaik pengoptimalan Spark dan analisis eksekusi workload (yang disebut "kohor").
Mendaftar untuk penyesuaian otomatis Serverless for Apache Spark
Untuk mendaftar akses ke rilis pratinjau penyetelan otomatis Serverless for Apache Spark yang dijelaskan di halaman ini, lengkapi dan kirimkan formulir pendaftaran Permintaan akses Pratinjau Dataproc. Setelah formulir disetujui, project yang tercantum dalam formulir akan memiliki akses ke fitur pratinjau.
Manfaat
Penyesuaian otomatis Serverless for Apache Spark dapat memberikan manfaat berikut:
- Pengoptimalan otomatis: Menyesuaikan konfigurasi batch dan Spark Serverless for Apache Spark yang tidak efisien secara otomatis, yang dapat mempercepat runtime tugas.
- Pembelajaran historis: Pelajari dari proses yang berulang untuk menerapkan rekomendasi yang disesuaikan dengan workload Anda.
Kohor penyetelan otomatis
Penyesuaian otomatis diterapkan pada eksekusi berulang (kohor) beban kerja batch.
Nama kohor yang Anda tentukan saat mengirimkan workload batch mengidentifikasinya sebagai salah satu run berturut-turut dari workload berulang.
Penyesuaian otomatis diterapkan ke kohor workload batch sebagai berikut:
Penyetelan otomatis dihitung dan diterapkan ke kohor kedua dan berikutnya dari beban kerja. Penyetelan otomatis tidak diterapkan pada run pertama workload berulang karena penyetelan otomatis Serverless for Apache Spark menggunakan histori workload untuk pengoptimalan.
Penyesuaian otomatis tidak diterapkan secara surut ke beban kerja yang sedang berjalan, tetapi diterapkan hanya ke beban kerja yang baru dikirimkan.
Penyesuaian otomatis mempelajari dan meningkat dari waktu ke waktu dengan menganalisis statistik kohor. Agar sistem dapat mengumpulkan data yang cukup, sebaiknya aktifkan penyetelan otomatis selama minimal lima kali proses.
Nama kohor: Praktik yang direkomendasikan adalah menggunakan nama kohor yang membantu mengidentifikasi jenis beban kerja berulang. Misalnya, Anda dapat menggunakan
daily_sales_aggregation sebagai nama kohor untuk workload terjadwal yang menjalankan
tugas agregasi penjualan harian.
Skenario penyetelan otomatis
Jika berlaku, penyesuaian otomatis akan otomatis memilih dan mengeksekusi scenarios atau sasaran berikut untuk mengoptimalkan workload batch:
- Penskalaan: Setelan konfigurasi penskalaan otomatis Spark.
- Pengoptimalan gabungan: Setelan konfigurasi Spark untuk mengoptimalkan performa gabungan siaran SQL.
Menggunakan penyesuaian otomatis Serverless for Apache Spark
Anda dapat mengaktifkan penyesuaian otomatis Serverless untuk Apache Spark pada beban kerja batch dengan menggunakan Google Cloud konsol, Google Cloud CLI, atau Dataproc API, atau Library Klien Cloud.
Konsol
Untuk mengaktifkan penyesuaian otomatis Serverless for Apache Spark pada setiap pengiriman workload batch berulang, lakukan langkah-langkah berikut:
Di konsol Google Cloud , buka halaman Batch Dataproc.
Untuk membuat workload batch, klik Buat.
Di bagian Autotuning:
Geser tombol Aktifkan untuk mengaktifkan penyetelan otomatis untuk workload Spark.
Cohort: Isi nama cohort, yang mengidentifikasi batch sebagai salah satu dari serangkaian workload berulang. Penyetelan otomatis diterapkan ke workload kedua dan berikutnya yang dikirimkan dengan nama kohor ini. Misalnya, tentukan
daily_sales_aggregationsebagai nama kohor untuk workload batch terjadwal yang menjalankan tugas agregasi penjualan harian.
Isi bagian lain di halaman Buat batch sesuai kebutuhan, lalu klik Kirim. Untuk mengetahui informasi selengkapnya tentang kolom ini, lihat Mengirimkan workload batch.
gcloud
Untuk mengaktifkan penyesuaian otomatis Serverless for Apache Spark pada setiap pengiriman
beban kerja batch berulang, jalankan perintah gcloud CLI
gcloud dataproc batches submit
secara lokal di jendela terminal atau di
Cloud Shell.
gcloud dataproc batches submit COMMAND \ --region=REGION \ --cohort=COHORT \ --autotuning-scenarios=auto \ other arguments ...
Ganti kode berikut:
- COMMAND: jenis beban kerja Spark, seperti
Spark,PySpark,Spark-Sql, atauSpark-R. - REGION: region tempat workload batch Anda akan berjalan.
- COHORT: nama cohort, yang
mengidentifikasi batch sebagai salah satu dari serangkaian beban kerja berulang.
Penyetelan otomatis diterapkan ke workload kedua dan berikutnya yang dikirimkan dengan nama kohor ini. Misalnya, tentukan
daily_sales_aggregationsebagai nama kohor untuk beban kerja batch terjadwal yang menjalankan tugas agregasi penjualan harian. --autotuning-scenarios=auto: Mengaktifkan penyesuaian otomatis.
API
Untuk mengaktifkan penyesuaian otomatis Serverless for Apache Spark pada setiap pengiriman workload batch berulang, kirimkan permintaan batches.create yang menyertakan kolom berikut:
RuntimeConfig.cohort: nama cohort, yang mengidentifikasi batch sebagai salah satu dari serangkaian beban kerja berulang. Penyetelan otomatis diterapkan pada beban kerja kedua dan berikutnya yang dikirimkan dengan nama kohor ini. Misalnya, tentukandaily_sales_aggregationsebagai nama kohor untuk workload batch terjadwal yang menjalankan tugas agregasi penjualan harian.AutotuningConfig.scenarios: TentukanAUTOuntuk mengaktifkan penyetelan otomatis pada beban kerja batch Spark.
Contoh:
...
runtimeConfig:
cohort: COHORT_NAME
autotuningConfig:
scenarios:
- AUTO
...
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai Serverless for Apache Spark menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Java API Serverless untuk Apache Spark.
Untuk melakukan autentikasi ke Serverless for Apache Spark, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Untuk mengaktifkan penyesuaian otomatis Serverless for Apache Spark pada setiap pengiriman workload batch berulang, panggil BatchControllerClient.createBatch dengan CreateBatchRequest yang menyertakan kolom berikut:
Batch.RuntimeConfig.cohort: Nama cohort, yang mengidentifikasi batch sebagai salah satu dari serangkaian workload berulang. Penyesuaian otomatis diterapkan pada beban kerja kedua dan berikutnya yang dikirimkan dengan nama kohor ini. Misalnya, Anda dapat menentukandaily_sales_aggregationsebagai nama kohor untuk beban kerja batch terjadwal yang menjalankan tugas agregasi penjualan harian.Batch.RuntimeConfig.AutotuningConfig.scenarios: TentukanAUTOuntuk mengaktifkan penyetelan otomatis pada workload batch Spark.
Contoh:
...
Batch batch =
Batch.newBuilder()
.setRuntimeConfig(
RuntimeConfig.newBuilder()
.setCohort("daily_sales_aggregation")
.setAutotuningConfig(
AutotuningConfig.newBuilder()
.addScenarios(Scenario.AUTO))
...
.build();
batchControllerClient.createBatch(
CreateBatchRequest.newBuilder()
.setParent(parent)
.setBatchId(batchId)
.setBatch(batch)
.build());
...
Untuk menggunakan API, Anda harus menggunakan library klien versi google-cloud-dataproc
4.43.0 atau yang lebih baru. Anda dapat menggunakan salah satu konfigurasi berikut untuk menambahkan
library ke project Anda.
Maven
<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-dataproc</artifactId>
<version>4.43.0</version>
</dependency>
</dependencies>
Gradle
implementation 'com.google.cloud:google-cloud-dataproc:4.43.0'
SBT
libraryDependencies += "com.google.cloud" % "google-cloud-dataproc" % "4.43.0"
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Serverless for Apache Spark menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Python API Serverless untuk Apache Spark.
Untuk melakukan autentikasi ke Serverless for Apache Spark, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Untuk mengaktifkan penyesuaian otomatis Serverless for Apache Spark pada setiap pengiriman workload batch berulang, panggil BatchControllerClient.create_batch dengan Batch yang mencakup kolom berikut:
batch.runtime_config.cohort: Nama cohort, yang mengidentifikasi batch sebagai salah satu dari serangkaian workload berulang. Penyetelan otomatis diterapkan pada beban kerja kedua dan berikutnya yang dikirimkan dengan nama kohor ini. Misalnya, Anda dapat menentukandaily_sales_aggregationsebagai nama kohor untuk workload batch terjadwal yang menjalankan tugas agregasi penjualan harian.batch.runtime_config.autotuning_config.scenarios: TentukanAUTOuntuk mengaktifkan penyetelan otomatis pada workload batch Spark.
Contoh:
# Create a client
client = dataproc_v1.BatchControllerClient()
# Initialize request argument(s)
batch = dataproc_v1.Batch()
batch.pyspark_batch.main_python_file_uri = "gs://bucket/run_tpcds.py"
batch.runtime_config.cohort = "daily_sales_aggregation"
batch.runtime_config.autotuning_config.scenarios = [
Scenario.AUTO
]
request = dataproc_v1.CreateBatchRequest(
parent="parent_value",
batch=batch,
)
# Make the request
operation = client.create_batch(request=request)
Untuk menggunakan API, Anda harus menggunakan library klien google-cloud-dataproc versi 5.10.1
atau yang lebih baru. Untuk menambahkannya ke project, Anda dapat menggunakan persyaratan berikut:
google-cloud-dataproc>=5.10.1
Airflow
Daripada mengirimkan setiap kohor batch yang di-tune otomatis secara manual, Anda dapat menggunakan Airflow untuk menjadwalkan pengiriman setiap workload batch berulang. Untuk melakukannya, panggil BatchControllerClient.create_batch dengan Batch yang menyertakan kolom berikut:
batch.runtime_config.cohort: Nama cohort, yang mengidentifikasi batch sebagai salah satu dari serangkaian workload berulang. Penyetelan otomatis diterapkan pada beban kerja kedua dan berikutnya yang dikirimkan dengan nama kohor ini. Misalnya, Anda dapat menentukandaily_sales_aggregationsebagai nama kohor untuk beban kerja batch terjadwal yang menjalankan tugas agregasi penjualan harian.batch.runtime_config.autotuning_config.scenarios: TentukanAUTOuntuk mengaktifkan penyetelan otomatis pada workload batch Spark.
Contoh:
create_batch = DataprocCreateBatchOperator(
task_id="batch_create",
batch={
"pyspark_batch": {
"main_python_file_uri": PYTHON_FILE_LOCATION,
},
"environment_config": {
"peripherals_config": {
"spark_history_server_config": {
"dataproc_cluster": PHS_CLUSTER_PATH,
},
},
},
"runtime_config": {
"cohort": "daily_sales_aggregation",
"autotuning_config": {
"scenarios": [
Scenario.AUTO,
]
}
},
},
batch_id="BATCH_ID",
)
Untuk menggunakan API, Anda harus menggunakan library klien google-cloud-dataproc versi 5.10.1
atau yang lebih baru. Anda dapat menggunakan persyaratan lingkungan Airflow berikut:
google-cloud-dataproc>=5.10.1
Untuk memperbarui paket di Cloud Composer, lihat Menginstal dependensi Python untuk Cloud Composer .
Melihat perubahan penyetelan otomatis
Untuk melihat perubahan penyetelan otomatis Serverless for Apache Spark pada workload batch, jalankan perintah
gcloud dataproc batches describe.
Contoh: Output gcloud dataproc batches describe mirip dengan berikut ini:
...
runtimeInfo:
propertiesInfo:
# Properties set by autotuning.
autotuningProperties:
spark.dataproc.sql.broadcastJoin.hints:
annotation: Converted 1 Sort-Merge Joins to Broadcast Hash Join
value: v2;Inner,<hint>
spark.dynamicAllocation.initialExecutors:
annotation: Adjusted Initial executors based on stages submitted in first
2 minutes to 9
overriddenValue: '2'
value: '9'
spark.dynamicAllocation.maxExecutors:
annotation: Tuned Max executors to 11
overriddenValue: '5'
value: '11'
spark.dynamicAllocation.minExecutors:
annotation: Changed Min executors to 9
overriddenValue: '2'
value: '9'
...
Anda dapat melihat perubahan penyetelan otomatis terbaru yang diterapkan pada workload yang sedang berjalan, selesai, atau gagal di halaman Detail batch di konsol Google Cloud , di tab Ringkasan.

Harga
Penyesuaian otomatis Serverless for Apache Spark ditawarkan selama pratinjau pribadi tanpa biaya tambahan. Harga Serverless for Apache Spark standar berlaku.