Mengirimkan workload batch Apache Spark

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 diperlukan, berikan peran Identity and Access Management.

Menyiapkan project

Lakukan satu atau beberapa langkah berikut sesuai kebutuhan:

  1. Login keakun Anda. Google Cloud 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Dataproc API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Dataproc API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

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:

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 Google Cloud konsol, Google Cloud CLI, atau REST API untuk membuat dan mengirimkan workload batch Managed Service untuk Apache Spark.

Konsol

  1. Di konsol, buka Managed Service for Apache Spark Batches. Google Cloud

  2. Klik Create.

  3. Kirimkan workload batch Spark yang menghitung nilai pi perkiraan dengan memilih dan mengisi kolom berikut:

    • Batch Info:
      • Batch ID: Tentukan ID untuk workload batch Anda. Nilai ini harus terdiri dari 4-63 karakter huruf kecil. Karakter yang valid adalah /[a-z][0-9]-/.
      • Region: Pilih region tempat workload Anda akan berjalan.
    • Container:
      • Batch type: Spark.
      • Versi runtime: Konfirmasi atau pilih versi runtime 3.0.
      • Main class:
        org.apache.spark.examples.SparkPi
      • Jar files (file ini telah diinstal sebelumnya di lingkungan eksekusi Managed Service untuk Apache Spark).
        file:///usr/lib/spark/examples/jars/spark-examples.jar
      • Arguments: 1000.
    • Execution Configuration: Pilih Service Account. Secara default, batch akan berjalan menggunakan akun layanan default Compute Engine. Anda dapat menentukan akun layanan kustom. Akun layanan default atau kustom harus memiliki peran Dataproc Worker.
    • Network configuration: Pilih subnetwork di region sesi. Managed Service untuk Apache Spark mengaktifkan Private Google Access (PGA) di subnet yang ditentukan. Untuk mengetahui persyaratan konektivitas jaringan, lihat Konfigurasi jaringan Managed Service untuk Apache Spark.
    • Properties: Masukkan Key (nama properti) dan Value 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 awasan spark:.
    • Other options:
  4. Klik Submit untuk menjalankan workload batch Spark.

gcloud

Untuk mengirimkan workload batch Spark guna menghitung nilai perkiraan dari 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 \
    --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 berjalan.
  • Opsi lainnya: Anda dapat menambahkan gcloud dataproc batches submit spark flag untuk menentukan opsi workload dan properti Spark lainnya.
    • --jars: File JAR contoh telah diinstal sebelumnya di lingkungan eksekusi Spark. Argumen perintah 1000 yang diteruskan ke workload SparkPi menentukan 1.000 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 subnet default di region sesi. Managed Service untuk Apache Spark mengaktifkan Private Google Access (PGA) di subnet. Untuk mengetahui 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 untuk membatasi aturan firewall ke alamat IP yang digunakan oleh workload Spark Anda.
    • --properties: Anda dapat menambahkan flag ini untuk memasukkan properti Spark yang didukung agar dapat 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 URI gs:// bucket tidak diperlukan; Anda dapat menentukan jalur bucket atau nama bucket. Managed Service untuk Apache Spark mengupload file lokal ke folder /dependencies di bucket sebelum menjalankan workload batch. Catatan: Flag ini diperlukan jika workload batch Anda mereferensikan file di komputer lokal Anda.
    • --ttl: Anda dapat menambahkan flag --ttl untuk 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 akhiran s, m, h, atau d (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 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 adalah 4h.
    • --service-account: Anda dapat menentukan akun layanan yang akan digunakan untuk menjalankan workload Anda. Jika Anda tidak menentukan akun layanan, workload akan berjalan di akun layanan default Compute Engine. Akun layanan Anda harus memiliki peran Dataproc Worker.
    • Hive Metastore: Perintah berikut mengonfigurasi workload batch untuk menggunakan Hive Metastore eksternal yang dikelola sendiri 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:
      1. Perintah berikut membuat PHS di cluster Managed Service untuk Apache Spark 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
                     
      2. 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
                      
    • Versi runtime: Gunakan flag --version untuk menentukan versi runtime Managed Service untuk 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
                  

API

Bagian ini menunjukkan cara membuat workload batch untuk menghitung nilai perkiraan dari pi menggunakan Managed Service for Apache Spark batches.create`

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: Google Cloud Project ID.
  • region: Region Compute Engine tempat Managed Service untuk Apache Spark akan menjalankan workload.
  • Catatan:

    • PROJECT_ID: Project ID Anda Google Cloud . Project ID tercantum di bagian Project info di Google Cloud konsol Dasbor.
    • REGION: Region sesi.

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 Data Compute Unit (DCU) dan resource penyimpanan shuffle. Untuk contoh yang menampilkan Managed Service untuk Apache Spark UsageMetrics guna memperkirakan konsumsi dan biaya resource workload, lihat Harga Managed Service untuk Apache Spark.

Langkah berikutnya

Pelajari: