Pelajari cara mengirimkan workload batch di infrastruktur komputasi Managed Service untuk Apache Spark yang menskalakan resource sesuai kebutuhan.
Sebelum memulai
Siapkan project Anda dan, jika perlu, berikan peran Identity and Access Management.
Menyiapkan project
Lakukan satu atau beberapa langkah berikut sesuai kebutuhan:
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataproc API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
Memberikan peran IAM jika diperlukan
Peran IAM tertentu diperlukan untuk menjalankan contoh di halaman ini. Bergantung pada kebijakan organisasi, peran ini mungkin sudah diberikan. Untuk memeriksa pemberian peran, lihat Apakah Anda perlu memberikan peran?.
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project,folder, dan organisasi.
Peran pengguna
Untuk mendapatkan izin yang Anda perlukan untuk mengirimkan workload batch serverless, minta administrator untuk memberi Anda peran IAM berikut:
- Dataproc Editor (
roles/dataproc.editor) di project - Pengguna Akun Layanan (
roles/iam.serviceAccountUser) di akun layanan default Compute Engine
Peran akun layanan
Untuk memastikan bahwa akun layanan default Compute Engine memiliki izin yang diperlukan untuk mengirimkan workload batch serverless, minta administrator Anda untuk memberikan peran IAM Dataproc Worker (roles/dataproc.worker) ke akun layanan default Compute Engine di project.
Mengirimkan workload batch Spark
Anda dapat menggunakan konsol Google Cloud , Google Cloud CLI, atau REST API untuk membuat dan mengirimkan workload batch Managed Service untuk Apache Spark.
Konsol
Di konsol Google Cloud , buka halaman Tugas Managed Service untuk Apache Spark.
Klik Submit job untuk membuka halaman Submit a job.
Kirimkan workload batch Spark yang menghitung nilai perkiraan pi dengan memilih dan mengisi kolom berikut:
- Select compute type for job: Pilih Serverless Spark.
- Detail tugas serverless:
- ID pekerjaan: Tentukan ID untuk workload batch Anda (atau terima ID default). Nilai ini harus terdiri dari 4 hingga 63 karakter huruf kecil, diawali dan diakhiri dengan
huruf kecil atau angka, serta hanya berisi huruf kecil,
angka, dan tanda hubung (
/[a-z0-9-]/). - Runtime profile: Pilih region di daftar Regions dan pilih Default service configuration (atau profil runtime yang disimpan) di daftar Runtime profiles.
- Mengonfigurasi profil runtime (opsional): Di kartu Summary, klik
Configure (atau klik Create new profile di menu Runtime
profile) untuk membuka panel konfigurasi profil runtime, tempat
Anda dapat menyesuaikan setelan berikut, lalu klik Use
configuration (atau Save new profile):
- Tier dan Executor configuration: Pilih tingkat komputasi (Premium atau Standard) dan bentuk eksekutor.
- Konfigurasi tambahan:
- Runtime configuration: Klik Edit untuk mengonfirmasi atau memilih
3.0Spark runtime version, atau untuk menentukan image Spark kustom, bucket staging Cloud Storage, atau repositori paket Python. - Metastore configuration: Klik Edit untuk mengonfigurasi workload agar menggunakan katalog Lakehouse atau Dataproc Metastore yang dikelola sendiri eksternal.
- Jaringan dan keamanan: Klik Edit untuk memilih Akun Layanan (secara default, workload berjalan menggunakan akun layanan default Compute Engine, atau Anda dapat menentukan akun layanan kustom dengan peran Dataproc Worker) dan pilih Subnetwork di region workload (Managed Service untuk Apache Spark mengaktifkan Akses Google Pribadi (PGA) di subnet yang ditentukan; lihat Konfigurasi jaringan Managed Service untuk Apache Spark).
- Runtime configuration: Klik Edit untuk mengonfirmasi atau memilih
- ID pekerjaan: Tentukan ID untuk workload batch Anda (atau terima ID default). Nilai ini harus terdiri dari 4 hingga 63 karakter huruf kecil, diawali dan diakhiri dengan
huruf kecil atau angka, serta hanya berisi huruf kecil,
angka, dan tanda hubung (
- File dan artefak:
- Jenis pekerjaan: Pilih Spark (Scala / Java).
- Driver configuration: Pilih Main class.
- Main class:
org.apache.spark.examples.SparkPi
- Argumen: Masukkan
1000, lalu tekanEnter. - File jar (file ini telah diinstal sebelumnya di lingkungan eksekusi Managed Service untuk Apache Spark):
file:///usr/lib/spark/examples/jars/spark-examples.jar
- Eksekusi dan properti tugas:
- Spark properties: Klik Add property untuk memasukkan Key (nama properti) dan Value dari properti Spark yang didukung untuk ditetapkan pada workload batch Spark Anda. Catatan: Tidak seperti properti cluster Managed Service untuk Apache Spark, properti workload Managed Service untuk Apache Spark tidak menyertakan awalan
spark:. - Label: Opsional: Klik Tambahkan label untuk melampirkan pasangan label Kunci dan Nilai ke workload.
- Spark properties: Klik Add property untuk memasukkan Key (nama properti) dan Value dari properti Spark yang didukung untuk ditetapkan pada workload batch Spark Anda. Catatan: Tidak seperti properti cluster Managed Service untuk Apache Spark, properti workload Managed Service untuk Apache Spark tidak menyertakan awalan
Klik Submit untuk menjalankan workload batch Spark.
gcloud
Untuk mengirimkan workload batch Spark guna menghitung nilai perkiraan
pi, jalankan perintah gcloud CLI
gcloud dataproc batches submit spark
berikut secara lokal di jendela terminal atau di
Cloud Shell.
gcloud dataproc batches submit spark \ --region=REGION \ --version=3.0 \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ -- 1000
Ganti kode berikut:
- REGION: Tentukan region tempat workload Anda akan dijalankan.
- Opsi lainnya: Anda dapat menambahkan flag
gcloud dataproc batches submit sparkuntuk menentukan opsi workload dan properti Spark lainnya.--jars: Contoh file JAR telah diinstal sebelumnya di lingkungan eksekusi Spark, Argumen perintah1000yang diteruskan ke workload SparkPi menentukan 1000 iterasi logika estimasi pi (argumen input workload disertakan setelah "-- ").--subnet: Anda dapat menambahkan flag ini untuk menentukan nama subnet di region sesi. Jika Anda tidak menentukan subnet, Managed Service untuk Apache Spark akan memilih subnetdefaultdi region sesi. Managed Service untuk Apache Spark mengaktifkan Akses Google Pribadi (PGA) di subnet. Untuk persyaratan konektivitas jaringan, lihat Konfigurasi jaringan Managed Service untuk Apache Spark.--tags: Anda dapat menambahkan flag ini untuk menentukan tag jaringan untuk kontrol traffic. Gunakan tag jaringan untuk membatasi konektivitas. Dalam produksi, praktik yang direkomendasikan adalah membatasi aturan firewall ke alamat IP yang digunakan oleh workload Spark Anda.--properties: Anda dapat menambahkan flag ini untuk memasukkan properti Spark yang didukung untuk digunakan oleh workload batch Spark Anda.--deps-bucket: Anda dapat menambahkan flag ini untuk menentukan bucket Cloud Storage tempat Managed Service untuk Apache Spark akan mengupload dependensi workload. Awalan URIgs://bucket tidak diperlukan; Anda dapat menentukan jalur bucket atau nama bucket. Managed Service untuk Apache Spark mengupload file lokal ke folder/dependenciesdi bucket sebelum menjalankan workload batch. Catatan: Flag ini diperlukan jika workload batch Anda mereferensikan file di komputer lokal.--ttl: Anda dapat menambahkan flag--ttluntuk menentukan durasi masa aktif batch. Jika workload melebihi durasi ini, workload akan dihentikan tanpa syarat tanpa menunggu pekerjaan yang sedang berlangsung selesai. Tentukan durasi menggunakan akhirans,m,h, ataud(detik, menit, jam, atau hari). Nilai minimumnya adalah 10 menit (10m), dan nilai maksimumnya adalah 14 hari (14d).- Batch runtime 1.1 atau 2.0: Jika
--ttltidak ditentukan untuk workload batch runtime 1.1 atau 2.0, workload diizinkan untuk berjalan hingga keluar secara alami (atau berjalan selamanya jika tidak keluar). - Batch runtime 2.1+: Jika
--ttltidak ditentukan untuk workload batch runtime 2.1 atau yang lebih baru, workload akan ditetapkan secara default ke4h.
- Batch runtime 1.1 atau 2.0: Jika
--service-account: Anda dapat menentukan akun layanan yang akan digunakan untuk menjalankan workload Anda. Jika Anda tidak menentukan akun layanan, workload akan berjalan di bawah akun layanan default Compute Engine. Akun layanan Anda harus memiliki peran Dataproc Worker.- Hive Metastore: Perintah berikut mengonfigurasi workload batch untuk menggunakan
Hive Metastore yang dikelola sendiri eksternal
menggunakan konfigurasi Spark standar.
gcloud dataproc batches submit spark\ --properties=spark.sql.catalogImplementation=hive,spark.hive.metastore.uris=METASTORE_URI,spark.hive.metastore.warehouse.dir=WAREHOUSE_DIR> \ other args ... - Persistent History Server:
- Perintah berikut membuat PHS di cluster Managed Service untuk Apache Spark dengan satu node. PHS harus berada di region tempat Anda menjalankan workload batch, dan bucket-name Cloud Storage harus ada.
gcloud dataproc clusters create PHS_CLUSTER_NAME \ --region=REGION \ --single-node \ --enable-component-gateway \ --properties=spark:spark.history.fs.logDirectory=gs://bucket-name/phs/*/spark-job-history
- Kirimkan workload batch, dengan menentukan Persistent History Server yang sedang berjalan.
gcloud dataproc batches submit spark \ --region=REGION \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ --history-server-cluster=projects/project-id/regions/region/clusters/PHS-cluster-name \ -- 1000
- Perintah berikut membuat PHS di cluster Managed Service untuk Apache Spark dengan satu node. PHS harus berada di region tempat Anda menjalankan workload batch, dan bucket-name Cloud Storage harus ada.
- Versi runtime:
Gunakan flag
--versionuntuk menentukan versi runtime Managed Service untuk Apache Spark bagi workload.gcloud dataproc batches submit spark \ --region=REGION \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ --version=VERSION -- 1000
API
Bagian ini menunjukkan cara membuat workload batch
untuk menghitung nilai perkiraan
pi menggunakan Managed Service untuk Apache Spark
batches.create`
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: Project ID Google Cloud .
- region: Region Compute Engine tempat Managed Service untuk Apache Spark akan menjalankan workload.
- PROJECT_ID: Project ID Google Cloud Anda. Project ID tercantum di bagian Project info di Dashboard konsol Google Cloud .
- REGION: Region sesi.
Catatan:
Metode HTTP dan URL:
POST https://dataproc.googleapis.com/v1/projects/project-id/locations/region/batches
Meminta isi JSON:
{
"sparkBatch":{
"args":[
"1000"
],
"runtimeConfig": {
"version": "2.3",
},
"jarFileUris":[
"file:///usr/lib/spark/examples/jars/spark-examples.jar"
],
"mainClass":"org.apache.spark.examples.SparkPi"
}
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"name":"projects/project-id/locations/region/batches/batch-id",
"uuid":",uuid",
"createTime":"2021-07-22T17:03:46.393957Z",
"sparkBatch":{
"mainClass":"org.apache.spark.examples.SparkPi",
"args":[
"1000"
],
"jarFileUris":[
"file:///usr/lib/spark/examples/jars/spark-examples.jar"
]
},
"runtimeInfo":{
"outputUri":"gs://dataproc-.../driveroutput"
},
"state":"SUCCEEDED",
"stateTime":"2021-07-22T17:06:30.301789Z",
"creator":"account-email-address",
"runtimeConfig":{
"version":"2.3",
"properties":{
"spark:spark.executor.instances":"2",
"spark:spark.driver.cores":"2",
"spark:spark.executor.cores":"2",
"spark:spark.app.name":"projects/project-id/locations/region/batches/batch-id"
}
},
"environmentConfig":{
"peripheralsConfig":{
"sparkHistoryServerConfig":{
}
}
},
"operation":"projects/project-id/regions/region/operation-id"
}
Memperkirakan biaya workload
Workload Managed Service untuk Apache Spark menggunakan resource Unit Komputasi Data (DCU) dan penyimpanan shuffle. Untuk contoh yang menghasilkan UsageMetrics Managed Service untuk Apache Spark guna memperkirakan konsumsi resource dan biaya workload, lihat Harga Managed Service untuk Apache Spark.
Langkah berikutnya
Pelajari: