Dokumen ini memberikan informasi tentang penyetelan otomatis workload batch Managed Service untuk Apache Spark. Mengoptimalkan workload Spark untuk performa dan ketahanan dapat menjadi tantangan karena banyaknya opsi konfigurasi Spark dan sulitnya menilai dampak opsi tersebut terhadap workload. Penyetelan otomatis Managed Service untuk 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 (disebut "kohor").
Mendaftar untuk penyetelan otomatis Managed Service untuk Apache Spark
Untuk mendaftar akses ke rilis pratinjau penyetelan otomatis Managed Service untuk Apache Spark yang dijelaskan di halaman ini, isi dan kirim formulir pendaftaran permintaan akses Pratinjau Managed Service untuk Apache Spark. Setelah formulir disetujui, project yang tercantum dalam formulir akan memiliki akses ke fitur pratinjau.
Manfaat
Penyetelan otomatis Managed Service untuk Apache Spark dapat memberikan manfaat berikut:
- Pengoptimalan otomatis: Menyetel konfigurasi batch dan Spark Managed Service untuk Apache Spark yang tidak efisien secara otomatis, yang dapat mempercepat runtime tugas.
- Pembelajaran historis: Belajar dari eksekusi berulang untuk menerapkan rekomendasi yang disesuaikan dengan workload Anda.
Kohor penyetelan otomatis
Penyetelan otomatis diterapkan ke eksekusi berulang (kohor) workload batch.
Nama kohor yang Anda tentukan saat mengirimkan workload batch akan mengidentifikasinya sebagai salah satu eksekusi berturut-turut dari workload berulang.
Penyetelan otomatis diterapkan ke kohor workload batch sebagai berikut:
Penyetelan otomatis dihitung dan diterapkan ke kohor kedua dan berikutnya dari workload. Penyetelan otomatis tidak diterapkan ke eksekusi pertama workload berulang karena penyetelan otomatis Managed Service untuk Apache Spark menggunakan histori workload untuk pengoptimalan.
Penyetelan otomatis tidak diterapkan secara retrospektif ke workload yang sedang berjalan, tetapi hanya diterapkan ke workload yang baru dikirimkan.
Penyetelan otomatis mempelajari dan meningkat dari waktu ke waktu dengan menganalisis statistik kohor. Untuk memungkinkan sistem mengumpulkan data yang cukup, sebaiknya aktifkan penyetelan otomatis untuk setidaknya lima eksekusi.
Nama kohor: Praktik yang direkomendasikan adalah menggunakan nama kohor yang membantu
mengidentifikasi jenis workload 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, penyetelan otomatis akan memilih dan menjalankan scenarios atau sasaran berikut secara otomatis untuk mengoptimalkan workload batch:
- Penskalaan: Setelan konfigurasi penskalaan otomatis Spark.
- Pengoptimalan gabungan: Setelan konfigurasi Spark untuk mengoptimalkan performa gabungan siaran SQL.
Menggunakan penyetelan otomatis Managed Service untuk Apache Spark
Anda dapat mengaktifkan penyetelan otomatis Managed Service untuk Apache Spark pada workload batch dengan menggunakan Google Cloud konsol, Google Cloud CLI, atau Dataproc API, atau Library Klien Cloud.
Konsol
Untuk mengaktifkan penyetelan otomatis Managed Service untuk Apache Spark pada setiap pengiriman workload batch berulang, lakukan langkah-langkah berikut:
Di Google Cloud konsol, buka halaman Batches Managed Service untuk Apache Spark.
Untuk membuat workload batch, klik Create.
Di bagian Autotuning:
Geser tombol Enable untuk mengaktifkan penyetelan otomatis untuk workload Spark.
Kohor: Isi nama kohor, 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 Create batch sesuai kebutuhan, lalu klik Submit. Untuk mengetahui informasi selengkapnya tentang kolom ini, lihat Mengirimkan workload batch.
gcloud
Untuk mengaktifkan penyetelan otomatis Managed Service untuk Apache Spark pada setiap pengiriman workload 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 workload Spark, seperti
Spark,PySpark,Spark-Sql, atauSpark-R. - REGION: region tempat workload batch Anda akan berjalan.
- COHORT: nama kohor, 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. --autotuning-scenarios=auto: Mengaktifkan penyetelan otomatis.
API
Untuk mengaktifkan penyetelan otomatis Managed Service untuk Apache Spark pada setiap pengiriman workload batch berulang, kirim permintaan batches.create yang menyertakan kolom berikut:
RuntimeConfig.cohort: nama kohor, 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, tentukandaily_sales_aggregationsebagai nama kohor untuk workload batch terjadwal yang menjalankan tugas agregasi penjualan harian.AutotuningConfig.scenarios: TentukanAUTOuntuk mengaktifkan penyetelan otomatis pada workload batch Spark.
Contoh:
...
runtimeConfig:
cohort: COHORT_NAME
autotuningConfig:
scenarios:
- AUTO
...
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Managed Service untuk Apache Spark menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Managed Service untuk Apache Spark Java API.
Untuk melakukan autentikasi ke Managed Service untuk Apache Spark, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Untuk mengaktifkan penyetelan otomatis Managed Service untuk Apache Spark pada setiap pengiriman workload batch berulang, panggil BatchControllerClient.createBatch dengan CreateBatchRequest yang menyertakan kolom berikut:
Batch.RuntimeConfig.cohort: Nama kohor, 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, Anda dapat menentukandaily_sales_aggregationsebagai nama kohor untuk workload 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 google-cloud-dataproc versi 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 Managed Service untuk Apache Spark menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Managed Service untuk Apache Spark Python API.
Untuk melakukan autentikasi ke Managed Service untuk Apache Spark, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Untuk mengaktifkan penyetelan otomatis Managed Service untuk Apache Spark pada setiap pengiriman workload batch berulang, panggil BatchControllerClient.create_batch dengan Batch yang menyertakan kolom berikut:
batch.runtime_config.cohort: Nama kohor, 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, 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, Anda dapat menggunakan persyaratan berikut:
google-cloud-dataproc>=5.10.1
Airflow
Daripada mengirimkan setiap kohor batch yang disetel 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 kohor, 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, 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_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 Managed Service untuk Apache Airflow, lihat Menginstal dependensi Python untuk Managed Airflow .
Melihat perubahan penyetelan otomatis
Untuk melihat perubahan penyetelan otomatis Managed Service untuk Apache Spark pada workload batch,
jalankan
gcloud dataproc batches describe
perintah.
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 ke workload yang sedang berjalan, selesai, atau gagal di halaman Batch details di Google Cloud konsol, di tab Summary.

Harga
Penyetelan otomatis Managed Service untuk Apache Spark ditawarkan selama pratinjau pribadi tanpa biaya tambahan. Harga Managed Service untuk Apache Spark standar berlaku.