Pelajari cara menggunakan Dataproc Serverless untuk mengirimkan workload batch di infrastruktur komputasi terkelola Dataproc yang menskalakan resource sesuai kebutuhan.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataproc API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Dataproc API.
- Pastikan subnet VPC regional tempat Anda akan menjalankan beban kerja telah mengaktifkan Akses Google Pribadi. Untuk informasi selengkapnya, lihat Mengirimkan workload batch Spark
Mengirimkan workload batch Spark
Anda dapat menggunakan konsol Google Cloud, Google Cloud CLI, atau Dataproc Serverless API untuk membuat dan mengirimkan beban kerja batch Dataproc Serverless untuk Spark.
Konsol
Di konsol Google Cloud, buka Dataproc Batches.
Klik Create.
Kirimkan workload batch Spark yang menghitung perkiraan nilai pi dengan memilih dan mengisi kolom berikut:
- Info Batch:
- ID Batch: Tentukan ID untuk workload batch Anda. Nilai ini harus berupa 4-63
karakter huruf kecil. Karakter yang valid adalah
/[a-z][0-9]-/
. - Region: Pilih region tempat beban kerja Anda akan berjalan.
- ID Batch: Tentukan ID untuk workload batch Anda. Nilai ini harus berupa 4-63
karakter huruf kecil. Karakter yang valid adalah
- Penampung:
- Jenis batch: Spark.
- Versi runtime: Versi runtime default dipilih. Secara opsional, Anda dapat menentukan versi runtime Dataproc Serverless non-default.
- Class utama:
org.apache.spark.examples.SparkPi
- File jar (file ini telah diprainstal di lingkungan eksekusi Dataproc Serverless Spark).
file:///usr/lib/spark/examples/jars/spark-examples.jar
- Argumen: 1000.
- Konfigurasi Eksekusi: Anda dapat menentukan akun layanan yang akan digunakan untuk menjalankan beban kerja. Jika Anda tidak menentukan akun layanan, beban kerja akan berjalan di bawah akun layanan default Compute Engine. Akun layanan Anda harus memiliki peran Dataproc Worker.
Konfigurasi jaringan: Sub-jaringan VPC yang menjalankan workload Dataproc Serverless untuk Spark harus diaktifkan untuk PGA Akses Google Pribadi dan memenuhi persyaratan lain yang tercantum dalam Konfigurasi jaringan Dataproc Serverless untuk Spark.
Pemilih Primary network dan subnetwork mencantumkan jaringan dengan subnet di region beban kerja yang dipilih yang telah mengaktifkan Akses Google Pribadi. Pilih jaringan dan subnet dari daftar. Jika tidak ada jaringan dan subnet yang tercantum, Anda dapat mengaktifkan Akses Google Pribadi di subnet VPC di region beban kerja yang saat ini dipilih atau mengubah region beban kerja ke region dengan subnet yang mengaktifkan PGA yang tercantum, lalu memilih jaringan dan subnet tersebut.
Properties: Masukkan
Key
(nama properti) danValue
dari properti Spark yang didukung untuk ditetapkan pada beban kerja batch Spark Anda. Catatan: Tidak seperti properti cluster Dataproc di Compute Engine, properti workload Dataproc Serverless untuk Spark tidak menyertakan awalanspark:
.Opsi lain:
- Anda dapat mengonfigurasi beban kerja batch untuk menggunakan Hive Metastore eksternal yang dikelola sendiri.
- Anda dapat menggunakan Persistent History Server (PHS). PHS harus berada di region tempat Anda menjalankan workload batch.
- Info Batch:
Klik Kirim untuk menjalankan beban kerja batch Spark.
gcloud
Untuk mengirimkan beban kerja batch Spark guna menghitung perkiraan nilai pi
, jalankan perintah gcloud dataproc batches submit spark
gcloud CLI berikut secara lokal di jendela terminal atau di Cloud Shell.
gcloud dataproc batches submit spark \ --region=REGION \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ -- 1000
Catatan:
- REGION: Tentukan region tempat workload Anda akan berjalan.
- Subnetwork:
Subnetwork VPC yang menjalankan workload Dataproc Serverless untuk Spark harus
diaktifkan untuk Akses Google Pribadi
dan memenuhi persyaratan lain yang tercantum dalam
Dataproc Serverless untuk konfigurasi jaringan Spark.
Jika subnet jaringan
default
untuk region yang ditentukan dalam perintahgcloud dataproc batches submit
tidak diaktifkan untuk Akses Google Pribadi, Anda harus melakukan salah satu hal berikut:- Aktifkan subnet jaringan default untuk region untuk Akses Google Pribadi, atau
- Gunakan flag
--subnet=SUBNET_URI
untuk menentukan subnet yang telah mengaktifkan Akses Google Pribadi. Anda dapat menjalankan perintahgcloud compute networks describe <var>NETWORK_NAME</var>
untuk menampilkan URI subnet dalam jaringan.
--jars
: Contoh file JAR telah diprainstal di lingkungan eksekusi Spark, Argumen perintah1000
yang diteruskan ke workload SparkPi menentukan 1.000 iterasi logika estimasi pi (argumen input workload disertakan setelah "-- ").--properties
: Anda dapat menambahkan tanda ini untuk memasukkan properti Spark yang didukung untuk digunakan oleh beban kerja batch Spark Anda.--deps-bucket
: Anda dapat menambahkan tanda ini untuk menentukan bucket Cloud Storage tempat Dataproc Serverless akan mengupload dependensi beban kerja. Awalan URIgs://
bucket tidak diperlukan; Anda dapat menentukan jalur bucket atau nama bucket, misalnya, "mybucketname". Dataproc Serverless untuk Spark mengupload file lokal ke folder/dependencies
di bucket sebelum menjalankan workload batch. Catatan: Flag ini diperlukan jika beban kerja batch Anda mereferensikan file di komputer lokal.--ttl
: Anda dapat menambahkan flag--ttl
untuk menentukan durasi masa aktif batch. Jika beban kerja melebihi durasi ini, beban kerja 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
--ttl
tidak ditentukan untuk beban kerja batch runtime 1.1 atau 2.0, beban kerja diizinkan untuk berjalan hingga keluar secara alami (atau berjalan selamanya jika tidak keluar). - Batch runtime 2.1+: Jika
--ttl
tidak ditentukan untuk beban kerja batch runtime 2.1 atau yang lebih baru, nilai defaultnya adalah4h
.
- Batch runtime 1.1 atau 2.0: Jika
--service-account
: Anda dapat menentukan akun layanan yang akan digunakan untuk menjalankan beban kerja. Jika Anda tidak menentukan akun layanan, beban kerja akan berjalan di bawah akun layanan default Compute Engine. Akun layanan Anda harus memiliki peran Dataproc Worker.- Opsi lainnya: Anda dapat menambahkan flag
gcloud dataproc batches submit spark
untuk menentukan opsi workload dan properti Spark lainnya.- Hive Metastore: Perintah berikut mengonfigurasi beban kerja batch untuk menggunakan Hive Metastore mandiri 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 ...
- Server Histori Permanen:
- Perintah berikut membuat PHS di cluster Dataproc 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 beban kerja batch, dengan menentukan Server Histori Persisten 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 Dataproc satu node. PHS harus berada di region tempat Anda menjalankan workload batch, dan bucket-name Cloud Storage harus ada.
- Versi runtime:
Gunakan flag
--version
untuk menentukan versi runtime Dataproc Serverless untuk beban kerja.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
- Hive Metastore: Perintah berikut mengonfigurasi beban kerja batch untuk menggunakan Hive Metastore mandiri yang dikelola sendiri eksternal menggunakan konfigurasi Spark standar.
API
Bagian ini menunjukkan cara membuat beban kerja batch
untuk menghitung perkiraan nilai
pi
menggunakan Dataproc Serverless untuk Spark
batches.create
`
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: Project ID Google Cloud.
- region: Region Compute Engine tempat Dataproc Serverless akan menjalankan beban kerja. Catatan:
RuntimeConfig.containerImage
: Anda dapat menentukan image container kustom menggunakan format penamaan image Docker:{hostname}/{project-id}/{image}:{tag}
, misalnya, "gcr.io/my-project-id/my-image:1.0.1". Catatan: Anda harus menghosting penampung kustom di Container Registry.ExecutionConfig.subnetworkUri
: Subnet VPC yang menjalankan workload Dataproc Serverless untuk Spark harus diaktifkan untuk Akses Google Pribadi dan memenuhi persyaratan lain yang tercantum dalam Konfigurasi jaringan Dataproc Serverless untuk Spark. Jika subnet jaringandefault
untuk region yang ditentukan tidak diaktifkan untuk Akses Google Pribadi, Anda harus melakukan salah satu hal berikut:- Aktifkan subnet jaringan default untuk region untuk Akses Google Pribadi, atau
- Gunakan kolom
ExecutionConfig.subnetworkUri
untuk menentukan subnet yang telah mengaktifkan Akses Google Pribadi. Anda dapat menjalankan perintahgcloud compute networks describe [NETWORK_NAME]
untuk menampilkan URI subnet dalam jaringan.
sparkBatch.jarFileUris
: Contoh file jar telah diinstal sebelumnya di lingkungan eksekusi Spark.sparkBatch.args
"1000" diteruskan ke beban kerja SparkPi, dan menentukan 1.000 iterasi logika estimasi pi.RuntimeConfig.properties
: Anda dapat menggunakan kolom ini untuk memasukkan properti Spark yang didukung untuk digunakan oleh workload batch Spark Anda.ExecutionConfig.serviceAccount
: Anda dapat menentukan akun layanan yang akan digunakan untuk menjalankan beban kerja. Jika Anda tidak menentukan akun layanan, beban kerja akan berjalan di bawah akun layanan default Compute Engine. Akun layanan Anda harus memiliki peran Dataproc Worker.EnvironmentConfig.ttl
: Anda dapat menggunakan kolom ini untuk menentukan durasi masa aktif batch. Jika beban kerja melebihi durasi ini, beban kerja akan dihentikan tanpa syarat tanpa menunggu pekerjaan yang sedang berlangsung selesai. Tentukan durasi sebagai representasi JSON untuk Durasi. Nilai minimumnya adalah 10 menit, dan nilai maksimumnya adalah 14 hari.- Batch runtime 1.1 atau 2.0: Jika
--ttl
tidak ditentukan untuk beban kerja batch runtime 1.1 atau 2.0, beban kerja diizinkan untuk berjalan hingga keluar secara alami (atau berjalan selamanya jika tidak keluar). - Batch runtime 2.1+: Jika
--ttl
tidak ditentukan untuk workload batch runtime 2.1 atau yang lebih baru, nilai defaultnya adalah 4 jam.
- Batch runtime 1.1 atau 2.0: Jika
- Opsi lain:
- Konfigurasikan beban kerja batch untuk menggunakan Hive Metastore eksternal yang dikelola sendiri.
- Gunakan Persistent History Server (PHS). PHS harus berada di region tempat Anda menjalankan workload batch.
- Gunakan kolom
RuntimeConfig.version
sebagai bagian dari permintaanbatches.create
untuk menentukan versi runtime Dataproc Serverless non-default .
Metode HTTP dan URL:
POST https://dataproc.googleapis.com/v1/projects/project-id/locations/region/batches
Meminta isi JSON:
{ "sparkBatch":{ "args":[ "1000" ], "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":{ "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 Dataproc Serverless untuk Spark menggunakan Unit Komputasi Data (DCU) dan resource penyimpanan shuffle. Untuk contoh yang menghasilkan UsageMetrics Dataproc untuk memperkirakan biaya dan penggunaan resource workload, lihat Harga Dataproc Serverless.
Langkah selanjutnya
Pelajari: