Pelajari cara menggunakan Dataproc Serverless untuk mengirimkan workload batch di infrastruktur komputasi yang dikelola Dataproc yang menskalakan resource sesuai kebutuhan.
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Dataproc.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Dataproc.
Mengirimkan workload batch Spark
Konsol
Di konsol Google Cloud, buka Batch Dataproc. Klik Create untuk membuka halaman Create batch.
Pilih dan isi kolom berikut di halaman tersebut untuk mengirimkan workload batch Spark yang menghitung perkiraan nilai pi:
- Info Batch:
- ID Batch: Tentukan ID untuk beban kerja batch Anda. Nilai ini harus terdiri dari 4-63
karakter dengan huruf kecil. Karakter yang valid adalah
/[a-z][0-9]-/
. - Region: Pilih region tempat beban kerja Anda akan dijalankan.
- ID Batch: Tentukan ID untuk beban kerja batch Anda. Nilai ini harus terdiri dari 4-63
karakter dengan 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 sudah diinstal sebelumnya 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 Anda. Jika Anda tidak menentukan akun layanan, beban kerja akan dijalankan pada akun layanan default Compute Engine.
- Konfigurasi jaringan: Subnetwork VPC yang menjalankan Dataproc Serverless untuk workload Spark harus diaktifkan untuk Akses Google Pribadi dan memenuhi persyaratan lain yang tercantum di Dataproc Serverless untuk konfigurasi jaringan Spark. Daftar subnetwork menampilkan subnet di jaringan yang dipilih yang diaktifkan untuk Akses Google Pribadi.
- Properties: Masukkan
Key
(nama properti) danValue
properti Spark yang didukung untuk ditetapkan pada workload batch Spark Anda. Catatan: Tidak seperti Dataproc di properti cluster Compute Engine, Dataproc Serverless untuk properti workload Spark tidak menyertakan awalanspark:
. - Opsi lainnya:
- Anda dapat mengonfigurasi beban kerja batch untuk menggunakan Hive MetastoreHive Metastore eksternal yang dikelola sendiri.
- Anda dapat menggunakan Persistent History Server (PHS). PHS harus berada di region tempat Anda menjalankan beban kerja batch.
- Info Batch:
Klik SUBMIT untuk menjalankan workload batch Spark.
gcloud
Untuk mengirimkan workload 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 dijalankan.
- Subnetwork:
Subnetwork VPC yang menjalankan Dataproc Serverless untuk workload Spark harus diaktifkan untuk Akses Google Pribadi
dan memenuhi persyaratan lain yang tercantum dalam
Dataproc Serverless for Spark network configuration.
Jika subnet jaringan
default
untuk region yang ditentukan dalam perintahgcloud dataproc batches submit
tidak diaktifkan untuk Akses Google Pribadi, Anda harus melakukan salah satu tindakan berikut:- Aktifkan subnet jaringan default untuk region untuk Akses Google Pribadi, atau
- Gunakan flag
--subnet=[SUBNET_URI]
dalam perintah untuk menentukan subnet yang mengaktifkan Akses Google Pribadi. Anda dapat menjalankan perintahgcloud compute networks describe [NETWORK_NAME]
untuk membuat daftar URI subnet dalam jaringan.
--jars
: Contoh file JAR telah diinstal sebelumnya 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 flag--properties
untuk memasukkan properti Spark yang didukung yang Anda inginkan untuk digunakan oleh workload batch Spark.--deps-bucket
: Anda dapat menambahkan flag ini untuk menentukan bucket Cloud Storage tempat Dataproc Serverless akan mengupload dependensi beban kerja. Awalan URIgs://
untuk 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 wajib jika beban kerja batch Anda mereferensikan file di mesin lokal Anda.--ttl
: Anda dapat menambahkan flag--ttl
untuk menentukan durasi masa aktif batch. Jika melebihi durasi ini, beban kerja akan dihentikan tanpa syarat tanpa menunggu selesainya pekerjaan yang sedang berlangsung. Tentukan durasi menggunakan akhirans
,m
,h
, ataud
(detik, menit, jam, atau hari). Nilai minimum adalah 10 menit (10m
), dan nilai maksimum adalah 14 hari (14d
).- Batch runtime 1.1 atau 2.0: Jika
--ttl
tidak ditentukan untuk workload batch runtime 1.1 atau 2.0, workload akan diizinkan 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, defaultnya adalah4h
.
- Batch runtime 1.1 atau 2.0: Jika
- Opsi lainnya: Anda dapat menambahkan flag perintah
gcloud dataproc batches submit
untuk menentukan opsi workload dan properti Spark lainnya.- Hive Metastore: Perintah berikut mengonfigurasi workload batch untuk menggunakan Hive Metastore eksternal yang dikelola sendiri menggunakan konfigurasi Spark standar.
gcloud dataproc batches submit \ --properties=spark.sql.catalogImplementation=hive,spark.hive.metastore.uris=METASTORE_URI,spark.hive.metastore.warehouse.dir=WAREHOUSE_DIR> \ other args ...
- Server Histori Persisten:
- Perintah berikut membuat PHS pada 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, yang 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 pada 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 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
- Hive Metastore: Perintah berikut mengonfigurasi workload batch untuk menggunakan Hive Metastore eksternal yang dikelola sendiri 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: ID Project Google Cloud.
- region: Region Compute Engine tempat Dataproc Serverless akan menjalankan beban kerja. Catatan:
- Custom-container-image: Tentukan 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 container kustom di Container Registry. - Subnetwork: Subnetwork VPC yang menjalankan Dataproc Serverless untuk workload Spark harus diaktifkan untuk Akses Google Pribadi
dan memenuhi persyaratan lain yang tercantum di bagian
Dataproc Serverless for Spark network configuration.
Jika subnet jaringan
default
untuk region yang ditentukan tidak diaktifkan untuk Akses Google Pribadi, Anda harus melakukan salah satu tindakan berikut:- Aktifkan subnet jaringan default untuk region untuk Akses Google Pribadi, atau
- Gunakan kolom
ExecutionConfig.subnetworkUri
untuk menentukan subnet yang mengaktifkan Akses Google Pribadi. Anda dapat menjalankan perintahgcloud compute networks describe [NETWORK_NAME]
untuk membuat daftar URI subnet dalam jaringan.
sparkBatch.jarFileUris
: Contoh file jar sudah diinstal sebelumnya di lingkungan eksekusi Spark.sparkBatch.args
"1000" diteruskan ke workload SparkPi, dan menentukan 1.000 iterasi dari logika estimasi pi.Spark properties
: Anda dapat menggunakan kolom RuntimeConfig.properties untuk memasukkan properti Spark yang didukung yang ingin digunakan oleh workload batch Spark.--ttl
: Anda dapat menggunakan kolomEnvironmentConfig.ttl
untuk menentukan durasi masa aktif batch. Jika melebihi durasi ini, beban kerja akan dihentikan tanpa syarat tanpa menunggu selesainya pekerjaan yang sedang berlangsung. Tentukan durasi sebagai representasi JSON untuk Duration. Nilai minimumnya adalah 10 menit, dan nilai maksimumnya adalah 14 hari.- Batch runtime 1.1 atau 2.0: Jika
--ttl
tidak ditentukan untuk workload batch runtime 1.1 atau 2.0, workload akan diizinkan 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, durasi defaultnya adalah 4 jam.
- Batch runtime 1.1 atau 2.0: Jika
- Opsi lainnya:
- Konfigurasikan workload batch untuk menggunakan Hive Metastore eksternal yang dikelola sendiri.
- Menggunakan Server Histori Persisten (PHS). PHS harus berada di region tempat Anda menjalankan beban kerja 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
Dataproc Serverless untuk workload Spark menggunakan Data Compute Unit (DCU) dan mengacak resource penyimpanan. Untuk contoh yang menghasilkan output Dataproc UsageMetrics untuk memperkirakan biaya dan konsumsi resource workload, lihat Harga Dataproc Serverless .
Langkah selanjutnya
Pelajari: