Pelajari cara menggunakan Serverless untuk Apache Spark guna mengirimkan workload batch di infrastruktur komputasi yang dikelola 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.
-
Verify 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.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Dataproc API.
Di konsol Google Cloud , buka Batch Dataproc.
Klik Buat.
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
- Container:
- Jenis batch: Spark.
- Versi runtime: Versi runtime default dipilih. Secara opsional, Anda dapat menentukan versi runtime Serverless for Apache Spark non-default.
- Class utama:
org.apache.spark.examples.SparkPi
- File JAR (file ini telah diinstal sebelumnya di lingkungan eksekusi Spark Serverless untuk Apache Spark).
file:///usr/lib/spark/examples/jars/spark-examples.jar
- Argumen: 1000.
- Konfigurasi Eksekusi: Anda dapat menentukan akun layanan yang akan digunakan untuk menjalankan workload Anda. 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: Pilih subnetwork di region sesi. Serverless for Apache Spark mengaktifkan Akses Google Pribadi (PGA) di subnet yang ditentukan. Untuk persyaratan konektivitas jaringan, lihat Google Cloud Konfigurasi jaringan Serverless untuk Apache Spark.
- Properti: 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 Serverless untuk Apache Spark tidak menyertakan awalanspark:
. - Opsi lainnya:
- Anda dapat mengonfigurasi beban kerja batch untuk menggunakan Hive Metastore yang dikelola sendiri eksternal.
- Anda dapat menggunakan Persistent History Server (PHS). PHS harus berada di region tempat Anda menjalankan workload batch.
- Info Batch:
Klik Submit untuk menjalankan beban kerja batch Spark.
- REGION: Tentukan region tempat workload Anda akan berjalan.
- Opsi lainnya: Anda dapat menambahkan
gcloud dataproc batches submit spark
flag untuk menentukan opsi workload dan properti Spark lainnya.--version
: Anda dapat menentukan versi runtime Serverless for Apache Spark non-default.--jars
: File JAR contoh telah diinstal sebelumnya di lingkungan eksekusi Spark, Argumen perintah1000
yang diteruskan ke workload SparkPi menentukan 1000 iterasi logika estimasi pi (argumen input workload disertakan setelah "-- ").--subnet
: Anda dapat menambahkan tanda ini untuk menentukan nama subnet di region sesi. Jika Anda tidak menentukan subnet, Serverless for Apache Spark akan memilih subnetdefault
di region sesi. Serverless for Apache Spark mengaktifkan Akses Google Pribadi (PGA) di subnet. Untuk persyaratan konektivitas jaringan, lihat Google Cloud Konfigurasi jaringan Serverless untuk Apache Spark.--properties
: Anda dapat menambahkan tanda ini untuk memasukkan properti Spark yang didukung agar digunakan oleh beban kerja batch Spark Anda.--deps-bucket
: Anda dapat menambahkan tanda ini untuk menentukan bucket Cloud Storage tempat Serverless untuk Apache Spark akan mengupload dependensi beban kerja. Awalan URIgs://
bucket tidak diperlukan; Anda dapat menentukan jalur bucket atau nama bucket. Serverless untuk Apache 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 Anda.--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 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 adalah4h
.
- 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, beban kerja akan berjalan di bawah akun layanan default Compute Engine. Akun layanan Anda harus memiliki peran Dataproc Worker.- Hive Metastore: Perintah berikut mengonfigurasi beban kerja batch untuk menggunakan
Hive Metastore yang dikelola sendiri secara 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 akan membuat PHS di cluster Dataproc
node tunggal. 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 akan membuat PHS di cluster Dataproc
node tunggal. PHS harus berada di region tempat Anda menjalankan workload batch,
dan bucket-name Cloud Storage harus ada.
- Versi runtime:
Gunakan tanda
--version
untuk menentukan versi runtime Serverless for Apache Spark 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
- project-id: ID project Google Cloud .
- region: Region Compute Engine tempat Google Cloud Serverless untuk Apache Spark akan menjalankan beban kerja.
- PROJECT_ID: ID project Google Cloud Anda. Project ID tercantum di bagian Project info di Google Cloud Dasbor konsol.
- REGION: Region sesi.
Mengirimkan workload batch Spark
Anda dapat menggunakan konsol Google Cloud , Google Cloud CLI, atau Serverless for Apache Spark API untuk membuat dan mengirimkan workload batch Serverless for Apache Spark.
Konsol
gcloud
Untuk mengirimkan workload batch Spark guna menghitung perkiraan nilai
pi
, jalankan perintah gcloud CLI
gcloud dataproc batches submit spark
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
Ganti kode berikut:
API
Bagian ini menunjukkan cara membuat workload batch
untuk menghitung perkiraan nilai
pi
menggunakan Serverless untuk Apache Spark
batches.create
`
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
Catatan:
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":{ "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 Serverless untuk Apache Spark menggunakan Unit Komputasi Data (DCU) dan resource penyimpanan shuffle. Untuk contoh yang menghasilkan UsageMetrics Dataproc guna memperkirakan biaya dan pemakaian resource workload, lihat Harga Serverless untuk Apache Spark.
Langkah berikutnya
Pelajari: