All Products
Search
Document Center

DataWorks:Buat node EMR Spark

Last Updated:Jun 21, 2026

Apache Spark adalah mesin analitik data besar yang serbaguna, berkinerja tinggi, dan mudah digunakan untuk menjalankan analitik kompleks dalam memori serta membangun aplikasi analitik data berskala besar dengan latensi rendah. DataWorks menyediakan node EMR Spark untuk mengembangkan tugas Spark dan menerapkan penjadwalan periodik. Topik ini menjelaskan cara membuat node EMR Spark dan menunjukkan fitur-fiturnya melalui contoh terperinci.

Prasyarat

  • Untuk menyesuaikan lingkungan komponen sebelum memulai pengembangan node, Anda dapat membuat custom image berdasarkan image resmi dataworks_emr_base_task_pod dan menggunakan image tersebut di DataStudio.

    Misalnya, Anda dapat mengganti paket JAR Spark atau menambahkan dependensi terhadap libraries, files, atau JAR packages tertentu saat membuat custom image.

  • Kluster EMR harus didaftarkan ke DataWorks. Untuk informasi selengkapnya, lihat DataStudio (versi lama): Bind an EMR computing resource.

  • (Opsional) Jika Anda menggunakan RAM user untuk pengembangan tugas, akun tersebut harus ditambahkan ke ruang kerja yang sesuai dan diberikan peran Development atau Workspace Administrator. Peran Workspace Manager memberikan izin yang luas. Berikan peran ini dengan hati-hati. Untuk informasi selengkapnya, lihat Add members to a workspace.

  • Grup sumber daya harus dibeli dan dikonfigurasi, termasuk binding ruang kerja dan pengaturan jaringannya. Untuk informasi selengkapnya, lihat Use a Serverless resource group.

  • Alur bisnis harus dibuat. DataStudio mengorganisasi operasi pengembangan ke dalam alur bisnis, sehingga Anda tidak dapat membuat node tanpa alur tersebut. Untuk informasi selengkapnya, lihat Create a business flow.

  • Jika tugas pengembangan Anda memerlukan lingkungan khusus, Anda dapat menggunakan fitur custom image yang disediakan oleh DataWorks untuk membangun custom image yang berisi komponen yang diperlukan untuk eksekusi tugas. Untuk informasi selengkapnya, lihat Custom image.

Batasan

  • Anda hanya dapat menjalankan tugas jenis ini pada serverless resource group (disarankan) atau grup sumber daya eksklusif untuk penjadwalan. Jika Anda perlu menggunakan image dalam pengembangan data, Anda harus menggunakan serverless resource group.

  • Untuk kluster DataLake atau kluster kustom, Anda harus mengonfigurasi EMR-HOOK pada kluster untuk mengelola metadata di DataWorks. Jika EMR-HOOK tidak dikonfigurasi, Anda tidak dapat melihat metadata secara real-time, menghasilkan log audit, menampilkan alur data, atau melakukan tugas tata kelola terkait EMR di DataWorks. Untuk informasi selengkapnya, lihat Configure EMR-HOOK for Spark SQL.

  • Kluster EMR Serverless Spark mendukung penampilan alur data, sedangkan kluster EMR on ACK Spark tidak.

  • Kluster EMR on ACK Spark dan kluster EMR Serverless Spark mendukung referensi terhadap sumber daya OSS menggunakan ossref dan mengunggah sumber daya ke OSS, tetapi tidak mendukung pengunggahan sumber daya ke HDFS.

  • Kluster DataLake dan kluster kustom mendukung referensi terhadap sumber daya OSS menggunakan ossref, mengunggah sumber daya ke OSS, serta mengunggah sumber daya ke HDFS.

Catatan

Jika Anda telah mengaktifkan kontrol akses Ranger untuk Spark di kluster EMR yang terkait dengan ruang kerja saat ini:

  • Tugas Spark yang menggunakan image default secara otomatis mendukung fitur ini.

  • Untuk menjalankan tugas Spark dengan custom image, ajukan tiket ke dukungan teknis untuk meminta peningkatan image.

Persiapan: Kembangkan JAR pekerjaan Spark

Sebelum Anda dapat menjadwalkan pekerjaan EMR Spark dengan DataWorks, Anda harus terlebih dahulu mengembangkan pekerjaan tersebut di EMR, mengompilasinya, dan menghasilkan paket JAR. Untuk informasi selengkapnya tentang pengembangan pekerjaan EMR Spark, lihat Spark overview.

Catatan

Anda kemudian akan mengunggah paket JAR ke DataWorks untuk menjadwalkan pekerjaan EMR Spark secara periodik.

I. Buat node EMR Spark

  1. Login ke Konsol DataWorks. Di wilayah target, klik Data Development and O&M > Data Development di panel navigasi kiri. Pilih ruang kerja dari daftar drop-down dan klik Go to Data Development.

  2. Buat node EMR Spark.

    1. Klik kanan alur bisnis target dan pilih Create Node > EMR > EMR Spark.

      Catatan

      Anda juga dapat mengarahkan kursor ke Create dan memilih Create Node > EMR > EMR Spark.

    2. Di kotak dialog Create Node, masukkan Name dan pilih Engine Instance, Node Type, dan Path. Klik Confirm untuk membuka editor node EMR Spark.

      Catatan

      Nama node dapat berisi huruf kapital, huruf kecil, karakter Tionghoa, angka, garis bawah (_), dan titik (.).

2. Kembangkan pekerjaan Spark

Untuk membuka editor kode, klik dua kali node EMR Spark. Anda kemudian dapat memilih metode berdasarkan skenario Anda.

Metode 1: Unggah dan referensikan sumber daya JAR EMR

Di DataWorks, Anda dapat mengunggah sumber daya dari komputer lokal ke DataStudio lalu mereferensikannya. Setelah mengompilasi pekerjaan EMR Spark menjadi paket JAR, pilih metode penyimpanan berdasarkan ukurannya.

Anda dapat mengunggah dan meng-commit paket JAR sebagai sumber daya EMR DataWorks. Atau, Anda dapat menyimpannya di HDFS kluster EMR. Kluster EMR on ACK Spark dan kluster EMR Serverless Spark tidak mendukung unggah sumber daya ke HDFS.

Paket JAR lebih kecil dari 500 MB

  1. Buat sumber daya EMR JAR.

    Metode ini memungkinkan manajemen sumber daya visual di konsol DataWorks. Setelah membuat sumber daya, commit sumber daya tersebut. Untuk informasi selengkapnya, lihat Create and use EMR resources.

    Di kotak dialog Create Resource, atur Engine Type ke EMR dan pilih Engine Instance. Atur Resource Type ke EMR JAR, tentukan Path, dan pilih Upload as EMR Resource. Pilih jenis Storage Path, yaitu OSS One-click Authorization atau HDFS. Atur File Source ke Local dan klik Upload untuk mengunggah file. Tentukan Name untuk sumber daya tersebut. Nama sumber daya JAR harus diakhiri dengan .jar. Lalu, klik Create.

    Catatan

    Pertama kali Anda membuat sumber daya EMR yang akan disimpan di OSS, Anda harus memberikan otorisasi akses seperti diminta.

  2. Referensikan sumber daya EMR JAR.

    1. Klik dua kali node EMR Spark untuk membuka editor kodenya.

    2. Di pohon navigasi kiri, pilih EMR > Resources. Temukan sumber daya EMR JAR Anda, klik kanan, lalu pilih Insert Resource Path.

    3. Setelah mereferensikan sumber daya, sistem secara otomatis menambahkan potongan kode referensi ke editor node. Potongan kode berikut merupakan contohnya.

      ##@resource_reference{"spark-examples_2.12-1.0.0-SNAPSHOT-shaded.jar"}
      spark-examples_2.12-1.0.0-SNAPSHOT-shaded.jar

      Kehadiran potongan kode ini menunjukkan bahwa sumber daya telah direferensikan. Dalam kode di atas, spark-examples_2.12-1.0.0-SNAPSHOT-shaded.jar adalah nama sumber daya EMR JAR yang diunggah.

    4. Modifikasi kode node EMR Spark dan tambahkan perintah spark-submit. Kode berikut merupakan contohnya.

      Catatan

      Editor kode untuk node EMR Spark tidak mendukung komentar. Modifikasi kode pekerjaan berdasarkan contoh berikut. Jangan tambahkan komentar; jika tidak, akan terjadi error saat node dijalankan.

      ##@resource_reference{"spark-examples_2.11-2.4.0.jar"}
      spark-submit --class org.apache.spark.examples.SparkPi --master yarn  spark-examples_2.11-2.4.0.jar 100

      Tabel berikut menjelaskan parameter-parameternya.

      • org.apache.spark.examples.SparkPi: kelas utama pekerjaan dalam paket JAR yang dikompilasi.

      • spark-examples_2.11-2.4.0.jar: nama sumber daya EMR JAR yang Anda unggah.

      • Anda dapat membiarkan parameter lain seperti pada contoh di atas. Anda juga dapat menjalankan perintah berikut untuk melihat bantuan untuk spark submit dan memodifikasi perintah spark submit sesuai kebutuhan.

        Catatan
        • Jika ingin menggunakan parameter sederhana dari perintah spark-submit di node Spark, Anda harus menambahkan parameter tersebut ke dalam kode. Contoh: --executor-memory 2G.

        • Node Spark hanya mendukung pengiriman pekerjaan dalam mode kluster YARN.

        • Untuk pekerjaan yang dikirim menggunakan perintah spark-submit, atur parameter deploy mode ke cluster, bukan client.

        spark-submit --help
        spark-submit --help
        Process Output>>>
        Process Output>>> Options:
        Process Output>>>       --master MASTER_URL         spark://host:port, mesos://host:port, yarn,
        Process Output>>>                                   k8s://https://host:port, or local (Default: local[*]).
        Process Output>>>       --deploy-mode DEPLOY_MODE   Whether to launch the driver program locally ("client") or
        Process Output>>>                                   on one of the worker machines inside the cluster ("cluster")
        Process Output>>>                                   (Default: client).
        Process Output>>>       --class CLASS_NAME          Your application's main class (for Java / Scala apps).
        Process Output>>>       --name NAME                 A name of your application.
        Process Output>>>       --jars JARS                 Comma-separated list of jars to include on the driver
        Process Output>>>                                   and executor classpaths.
        Process Output>>>       --packages                  Comma-separated list of maven coordinates of jars to include
        Process Output>>>                                   on the driver and executor classpaths. Will search the local
        Process Output>>>                                   maven repo, then maven central and any additional remote
        Process Output>>>                                   repositories given by --repositories. The format for the
        Process Output>>>                                   coordinates should be groupId:artifactId:version.
        Process Output>>>       --exclude-packages          Comma-separated list of groupId:artifactId, to exclude while
        Process Output>>>                                   resolving the dependencies provided in --packages to avoid
        Process Output>>>                                   dependency conflicts.
        Process Output>>>       --repositories              Comma-separated list of additional remote repositories to
        Process Output>>>                                   search for the maven coordinates given with --packages.
        Process Output>>>       --py-files PY_FILES         Comma-separated list of .zip, .egg, or .py files to place
        Process Output>>>                                   on the PYTHONPATH for Python apps.
        Process Output>>>       --files FILES               Comma-separated list of files to be placed in the working
        Process Output>>>                                   directory of each executor. File paths of these files

Paket JAR 500 MB atau lebih besar

  1. Buat sumber daya EMR JAR.

    Jika paket JAR berukuran 500 MB atau lebih besar, Anda tidak dapat mengunggahnya dari komputer lokal sebagai sumber daya DataWorks. Simpan paket JAR di HDFS kluster EMR Anda dan catat jalur penyimpanannya. Anda kemudian dapat menggunakan jalur tersebut untuk mereferensikan paket saat menjadwalkan pekerjaan Spark.

  2. Referensikan sumber daya EMR JAR.

    Jika paket JAR disimpan di HDFS, referensikan langsung dengan menentukan jalurnya dalam kode node EMR Spark.

    1. Klik dua kali node EMR Spark yang telah dibuat untuk membuka editor node.

    2. Tulis perintah spark-submit. Kode berikut merupakan contohnya.

      spark-submit --master yarn
      --deploy-mode cluster
      --name SparkPi
      --driver-memory 4G
      --driver-cores 1
      --num-executors 5
      --executor-memory 4G
      --executor-cores 1
      --class org.apache.spark.examples.JavaSparkPi
      hdfs:///tmp/jars/spark-examples_2.11-2.4.8.jar 100

      Tabel berikut menjelaskan parameter-parameternya.

      • hdfs:///tmp/jars/spark-examples_2.11-2.4.8.jar: jalur paket JAR di HDFS.

      • org.apache.spark.examples.JavaSparkPi: kelas utama pekerjaan dalam paket JAR yang dikompilasi.

      • Parameter lainnya adalah parameter kluster EMR dan harus dimodifikasi sesuai kebutuhan bisnis Anda. Anda juga dapat menjalankan perintah berikut untuk melihat informasi bantuan perintah spark-submit dan memodifikasi perintah tersebut sesuai kebutuhan.

        Penting
        • Jika ingin menggunakan parameter sederhana dari perintah Spark-submit di node Spark, Anda harus menambahkan parameter tersebut ke dalam kode. Contoh: --executor-memory 2G.

        • Node Spark hanya mendukung pengiriman pekerjaan dalam mode kluster YARN.

        • Untuk pekerjaan yang dikirim menggunakan perintah spark-submit, atur parameter deploy mode ke cluster, bukan client.

        spark-submit --help

Metode 2: Referensikan langsung sumber daya OSS

Anda dapat langsung mereferensikan sumber daya OSS dari node menggunakan metode OSS REF. Saat menjalankan node EMR, DataWorks secara otomatis mengunduh sumber daya OSS yang ditentukan ke direktori lokal. Metode ini cocok untuk skenario di mana pekerjaan EMR memerlukan dependensi JAR atau skrip.

  1. Kembangkan sumber daya JAR.

    1. Siapkan dependensi kode.

      Anda dapat menemukan dependensi kode yang diperlukan di jalur /usr/lib/emr/spark-current/jars/ pada node master kluster. Contoh berikut menggunakan Spark 3.4.2. Anda harus menambahkan dependensi pom dan mereferensikan plugin terkait dalam proyek IDEA Anda.

      Dependensi Pom

      <dependencies>
              <dependency>
                  <groupId>org.apache.spark</groupId>
                  <artifactId>spark-core_2.12</artifactId>
                  <version>3.4.2</version>
              </dependency>
              <!-- Apache Spark SQL -->
              <dependency>
                  <groupId>org.apache.spark</groupId>
                  <artifactId>spark-sql_2.12</artifactId>
                  <version>3.4.2</version>
              </dependency>
      </dependencies>

      Plugin terkait

      <build>
              <sourceDirectory>src/main/scala</sourceDirectory>
              <testSourceDirectory>src/test/scala</testSourceDirectory>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <version>3.7.0</version>
                      <configuration>
                          <source>1.8</source>
                          <target>1.8</target>
                      </configuration>
                  </plugin>
                  <plugin>
                      <artifactId>maven-assembly-plugin</artifactId>
                      <configuration>
                          <descriptorRefs>
                              <descriptorRef>jar-with-dependencies</descriptorRef>
                          </descriptorRefs>
                      </configuration>
                      <executions>
                          <execution>
                              <id>make-assembly</id>
                              <phase>package</phase>
                              <goals>
                                  <goal>single</goal>
                              </goals>
                          </execution>
                      </executions>
                  </plugin>
                  <plugin>
                      <groupId>net.alchim31.maven</groupId>
                      <artifactId>scala-maven-plugin</artifactId>
                      <version>3.2.2</version>
                      <configuration>
                          <recompileMode>incremental</recompileMode>
                      </configuration>
                      <executions>
                          <execution>
                              <goals>
                                  <goal>compile</goal>
                                  <goal>testCompile</goal>
                              </goals>
                              <configuration>
                                  <args>
                                      <arg>-dependencyfile</arg>
                                      <arg>${project.build.directory}/.scala_dependencies</arg>
                                  </args>
                              </configuration>
                          </execution>
                      </executions>
                  </plugin>
              </plugins>
          </build>
    2. Tulis kode contoh.

      package com.aliyun.emr.example.spark
      import org.apache.spark.sql.SparkSession
      object SparkMaxComputeDemo {
        def main(args: Array[String]): Unit = {
          // Creates a SparkSession.
          val spark = SparkSession.builder()
            .appName("HelloDataWorks")
            .getOrCreate()
          // Prints the Spark version.
          println(s"Spark version: ${spark.version}")
        }
      }
    3. Kemas kode menjadi file JAR.

      Setelah mengedit dan menyimpan kode Scala, kemas kode Scala tersebut menjadi file JAR. Dalam contoh ini, paket JAR yang dihasilkan diberi nama SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jar.

  2. Unggah sumber daya JAR.

    1. Setelah kode dikembangkan, masuk ke Konsol OSS. Di panel navigasi sebelah kiri, klik Buckets.

    2. Klik nama bucket tujuan untuk membuka halaman File Management.

      Dalam contoh ini, bucket onaliyun-bucket-2 digunakan.

    3. Klik New Directory untuk membuat direktori guna menyimpan sumber daya JAR.

      Atur Directory Name menjadi emr/jars untuk membuat direktori penyimpanan sumber daya JAR.

    4. Unggah sumber daya JAR ke direktori tersebut.

      Buka direktori, klik Upload File, lalu klik Scan di bagian Files to Upload. Tambahkan file SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jar ke bucket dan klik Upload File.

  3. Referensikan sumber daya JAR.

    1. Edit kode untuk mereferensikan sumber daya JAR.

      Di halaman edit node EMR Spark yang telah dibuat, edit kode untuk mereferensikan sumber daya JAR tersebut.

      spark-submit --class com.aliyun.emr.example.spark.SparkMaxComputeDemo --master yarn ossref://onaliyun-bucket-2/emr/jars/SparkWorkOSS-1.0-SNAPSHOT-jar-with-dependencies.jar

      Tabel berikut menjelaskan parameter-parameternya.

      Parameter

      Deskripsi

      class

      Nama kelas utama yang ingin dijalankan.

      master

      Mode eksekusi aplikasi Spark.

      Jalur file ossref

      Jalur harus dalam format ossref://{endpoint}/{bucket}/{object}.

      • Endpoint: nama domain yang digunakan untuk mengakses OSS. Jika Anda menghilangkan parameter ini, bucket OSS dan kluster EMR Anda harus berada di wilayah yang sama.

      • Bucket: wadah untuk menyimpan objek di OSS. Setiap bucket harus memiliki nama unik. Anda dapat login ke Konsol OSS untuk melihat semua buckets di akun Anda.

      • object: objek spesifik yang disimpan di bucket, yang dapat berupa nama file atau jalur.

    2. Jalankan pekerjaan node EMR Spark.

      Setelah mengedit kode, klik ikon image dan pilih grup sumber daya penjadwalan Anda untuk menjalankan node EMR Spark. Setelah pekerjaan selesai, catat applicationId dari output konsol. Contoh: application_1730367929285_xxxx.

    3. Lihat hasilnya.

      Buat node EMR Shell dan jalankan perintah yarn logs -applicationId application_1730367929285_xxxx untuk melihat hasilnya.

      yarn logs -applicationId application_xxx
      Process Output>>> LogLastModifiedTime:Fri Nov 01 16:27:46 +0800 2024
      Process Output>>> LogLength:21
      Process Output>>> LogContents:
      Process Output>>> Spark version: 3.4.2
      Process Output>>>

(Opsional) Parameter lanjutan

Anda dapat mengonfigurasi parameter khusus Spark di bagian Advanced Settings node. Untuk informasi selengkapnya tentang properti Spark, lihat Spark Configuration. Parameter lanjutan yang dapat Anda konfigurasi berbeda-beda untuk jenis kluster EMR yang berbeda, seperti yang ditunjukkan pada tabel berikut.

Kluster DataLake atau kustom: EMR on ECS

Parameter

Deskripsi

queue

Antrian penjadwalan tempat pekerjaan dikirimkan. Nilai default: default.

Jika Anda mengonfigurasi YARN resource queue tingkat ruang kerja saat mendaftarkan kluster EMR ke ruang kerja DataWorks, aturan berikut berlaku:

  • Jika Anda memilih kotak centang Global Settings Take Precedence dan mengatur nilainya ke Yes, konfigurasi antrian yang Anda tentukan saat mendaftarkan kluster EMR akan diprioritaskan saat pekerjaan Spark dijalankan.

  • Jika Anda mengosongkan kotak centang tersebut, konfigurasi antrian yang Anda tentukan untuk node EMR Spark akan diprioritaskan saat pekerjaan Spark dijalankan.

Untuk informasi selengkapnya tentang EMR YARN, lihat Basic queue configurations. Untuk informasi selengkapnya tentang cara mengonfigurasi antrian saat mendaftarkan kluster EMR, lihat Set the global YARN resource queue.

priority

Prioritas. Nilai default: 1.

FLOW_SKIP_SQL_ANALYZE

Metode yang digunakan untuk menjalankan pernyataan SQL. Nilai yang valid:

  • true: Beberapa pernyataan SQL dijalankan sekaligus.

  • false (nilai default): Satu pernyataan SQL dijalankan sekaligus.

Catatan

Parameter ini hanya dapat digunakan untuk pengujian di Data Development.

Others

  • Anda dapat langsung menambahkan parameter Spark kustom dalam konfigurasi lanjutan. Contoh: "spark.eventLog.enabled":false. DataWorks secara otomatis menambahkan parameter tersebut ke kode yang dikirimkan ke kluster EMR. Formatnya adalah --conf key=value.

  • Anda juga dapat mengonfigurasi parameter Spark global. Untuk informasi selengkapnya, lihat Configure global Spark parameters.

    Catatan

    Untuk mengaktifkan kontrol akses Ranger, tambahkan konfigurasi spark.hadoop.fs.oss.authorization.method=ranger di Configure global Spark parameters.

Kluster EMR Serverless Spark

Untuk informasi selengkapnya tentang cara mengonfigurasi parameter, lihat Configure parameters for a Spark job.

Parameter

Deskripsi

queue

Antrian penjadwalan tempat pekerjaan dikirimkan. Nilai default: dev_queue.

priority

Prioritas. Nilai default: 1.

FLOW_SKIP_SQL_ANALYZE

Metode yang digunakan untuk menjalankan pernyataan SQL. Nilai yang valid:

  • true: Beberapa pernyataan SQL dijalankan sekaligus.

  • false: Satu pernyataan SQL dijalankan sekaligus.

Catatan

Parameter ini hanya dapat digunakan untuk pengujian di Data Development.

SERVERLESS_RELEASE_VERSION

Versi mesin Spark. Secara default, Default Engine Version yang dikonfigurasi untuk kluster di bagian Cluster Management pada halaman Management Center digunakan. Anda dapat mengonfigurasi parameter ini untuk menentukan versi mesin yang berbeda untuk pekerjaan yang berbeda.

SERVERLESS_QUEUE_NAME

Antrian sumber daya yang ingin Anda tentukan. Secara default, Default Resource Queue yang dikonfigurasi untuk kluster di bagian Cluster Management pada halaman Management Center digunakan. Jika ingin mengisolasi dan mengelola sumber daya, Anda dapat menambahkan antrian. Untuk informasi selengkapnya, lihat Manage resource queues.

Others

  • Anda dapat langsung menambahkan parameter Spark kustom dalam konfigurasi lanjutan. Contoh: "spark.eventLog.enabled":false. DataWorks secara otomatis menambahkan parameter tersebut ke kode yang dikirimkan ke kluster EMR. Formatnya adalah --conf key=value.

  • Anda juga dapat mengonfigurasi parameter Spark global. Untuk informasi selengkapnya, lihat Configure global Spark parameters.

Kluster Spark: EMR on ACK

Parameter

Deskripsi

queue

Parameter ini tidak didukung.

priority

Parameter ini tidak didukung.

FLOW_SKIP_SQL_ANALYZE

Metode yang digunakan untuk menjalankan pernyataan SQL. Nilai yang valid:

  • true: Beberapa pernyataan SQL dijalankan sekaligus.

  • false: Satu pernyataan SQL dijalankan sekaligus.

Catatan

Parameter ini hanya dapat digunakan untuk pengujian di Data Development.

Others

  • Anda dapat langsung menambahkan parameter Spark kustom dalam konfigurasi lanjutan. Contoh: "spark.eventLog.enabled":false. DataWorks secara otomatis menambahkan parameter tersebut ke kode yang dikirimkan ke kluster EMR. Formatnya adalah --conf key=value.

  • Anda juga dapat mengonfigurasi parameter Spark global. Untuk informasi selengkapnya, lihat Configure global Spark parameters.

Kluster Hadoop: EMR on ECS

Parameter

Deskripsi

queue

Antrian penjadwalan tempat pekerjaan dikirimkan. Nilai default: default.

Jika Anda mengonfigurasi YARN resource queue tingkat ruang kerja saat mendaftarkan kluster EMR ke ruang kerja DataWorks, aturan berikut berlaku:

  • Jika Anda memilih kotak centang Global Settings Take Precedence dan mengatur nilainya ke Yes, konfigurasi antrian yang Anda tentukan saat mendaftarkan kluster EMR akan diprioritaskan saat pekerjaan Spark dijalankan.

  • Jika Anda mengosongkan kotak centang tersebut, konfigurasi antrian yang Anda tentukan untuk node EMR Spark akan diprioritaskan saat pekerjaan Spark dijalankan.

Untuk informasi selengkapnya tentang EMR YARN, lihat Basic queue configurations. Untuk informasi selengkapnya tentang cara mengonfigurasi antrian saat mendaftarkan kluster EMR, lihat Set the global YARN resource queue.

priority

Prioritas. Nilai default: 1.

FLOW_SKIP_SQL_ANALYZE

Metode yang digunakan untuk menjalankan pernyataan SQL. Nilai yang valid:

  • true: Beberapa pernyataan SQL dijalankan sekaligus.

  • false: Satu pernyataan SQL dijalankan sekaligus.

Catatan

Parameter ini hanya dapat digunakan untuk pengujian di Data Development.

USE_GATEWAY

Menentukan apakah pekerjaan dikirimkan dari node saat ini melalui kluster Gateway. Nilai yang valid:

  • true: Pekerjaan dikirimkan melalui kluster Gateway.

  • false: Pekerjaan tidak dikirimkan melalui kluster Gateway. Secara default, pekerjaan dikirimkan ke node header.

Catatan

Jika kluster tempat node saat ini berada tidak terkait dengan kluster Gateway dan Anda mengatur parameter ini ke true, pekerjaan EMR akan gagal dikirimkan.

Others

  • Anda dapat langsung menambahkan parameter Spark kustom dalam konfigurasi lanjutan. Contoh: "spark.eventLog.enabled":false. DataWorks secara otomatis menambahkan parameter tersebut ke kode yang dikirimkan ke kluster EMR. Formatnya adalah --conf key=value.

  • Anda juga dapat mengonfigurasi parameter Spark global. Untuk informasi selengkapnya, lihat Configure global Spark parameters.

    Catatan

    Untuk mengaktifkan kontrol akses Ranger, tambahkan konfigurasi spark.hadoop.fs.oss.authorization.method=ranger di Configure global Spark parameters.

Pekerjaan SQL

  1. Pada bilah alat, klik ikon 高级运行. Di kotak dialog Parameter, pilih grup sumber daya penjadwalan yang telah dibuat dan klik Running.

    Catatan
    • Untuk mengakses sumber daya komputasi yang ditempatkan di jaringan publik atau VPC, Anda harus menggunakan grup sumber daya penjadwalan yang dapat terhubung ke sumber daya komputasi tersebut. Untuk informasi selengkapnya, lihat Solutions for network connections.

    • Jika ingin mengubah grup sumber daya yang digunakan untuk menjalankan pekerjaan, klik ikon Run with Parameters 高级运行 dan pilih grup sumber daya yang ingin digunakan.

    • Saat mengkueri data menggunakan node EMR Spark, hasilnya dibatasi hingga maksimal 10.000 record dan ukuran total 10 MB.

  2. Klik ikon 保存 untuk menyimpan pernyataan SQL Anda.

  3. (Opsional) Lakukan pengujian asap.

    Jika ingin menjalankan pengujian asap di lingkungan Development, Anda dapat melakukannya saat melakukan commit ke node eksekusi atau setelah node tersebut di-commit. Untuk informasi selengkapnya, lihat Run a smoke test.

Langkah 3: Konfigurasi penjadwalan node

Jika Anda ingin sistem menjalankan tugas pada node secara periodik, Anda dapat mengklik Properties di panel navigasi kanan pada tab konfigurasi node untuk mengonfigurasi properti penjadwalan tugas sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Overview.

Catatan
  • Anda harus mengonfigurasi properti Rerun attribute dan Parent Nodes untuk node sebelum dapat mengirimkannya.

  • Jika perlu menyesuaikan lingkungan komponen, Anda dapat membuat custom image berdasarkan image resmi dataworks_emr_base_task_pod dan menggunakannya di DataStudio.

    Misalnya, Anda dapat mengganti paket JAR Spark atau menyertakan libraries, files, atau JAR packages tertentu saat membuat custom image.

Langkah 4: Deploy node

Setelah tugas pada node dikonfigurasi, Anda harus melakukan commit dan deploy tugas tersebut. Setelah tugas di-commit dan di-deploy, sistem akan menjalankan tugas tersebut secara berkala berdasarkan konfigurasi penjadwalan.

  1. Klik ikon 保存 di bilah alat atas untuk menyimpan tugas.

  2. Klik ikon 提交 di bilah alat atas untuk melakukan commit tugas.

    Di kotak dialog Submit, konfigurasikan parameter Change description. Lalu, tentukan apakah akan meninjau kode tugas setelah melakukan commit berdasarkan kebutuhan bisnis Anda.

    Catatan
    • Anda harus mengonfigurasi parameter Rerun dan Parent Nodes di tab Properties sebelum melakukan commit tugas.

    • Anda dapat menggunakan fitur tinjauan kode untuk memastikan kualitas kode tugas dan mencegah error eksekusi tugas yang disebabkan oleh kode tugas yang tidak valid. Jika Anda mengaktifkan fitur tinjauan kode, kode tugas yang di-commit hanya dapat di-deploy setelah kode tugas tersebut lolos tinjauan kode. Untuk informasi selengkapnya, lihat Code review.

Jika Anda menggunakan ruang kerja dalam mode standar, Anda harus melakukan deploy tugas di lingkungan produksi setelah melakukan commit tugas. Untuk melakukan deploy tugas pada node, klik Deploy di pojok kanan atas tab konfigurasi node. Untuk informasi selengkapnya, lihat Deploy nodes.

Operasi lainnya

Setelah tugas di-commit dan di-deploy, tugas tersebut akan dijalankan secara periodik berdasarkan konfigurasi penjadwalan. Anda dapat mengklik Operation Center di pojok kanan atas tab konfigurasi node yang sesuai untuk membuka Operation Center dan melihat status penjadwalan tugas. Untuk informasi selengkapnya, lihat Manage scheduled tasks.

FAQ

Dokumen terkait