All Products
Search
Document Center

E-MapReduce:Edit jobs

Last Updated:Jun 21, 2026

Dalam sebuah proyek, Anda dapat membuat job untuk pengembangan data.

Informasi latar belakang

Prasyarat

Anda telah membuat proyek atau telah ditambahkan ke dalam proyek. Untuk informasi selengkapnya, lihat Manajemen proyek.

Buat job

  1. Buka halaman Projects di Data Platform.

    1. Login ke Konsol E-MapReduce dengan Akun Alibaba Cloud Anda.

    2. Di bilah navigasi atas, pilih wilayah dan resource group.

    3. Klik tab Data Development.

  2. Pada baris proyek yang ingin Anda edit, klik Edit Job.

  3. Buat job.

    1. Di panel kiri, klik kanan folder target dan pilih New job.

      Catatan

      Anda juga dapat mengklik kanan folder untuk melakukan tindakan lain, seperti New subfolder, Rename folder, dan Delete Folder.

    2. Di kotak dialog New job, masukkan Job Name dan Description, lalu pilih jenis job dari daftar drop-down Job Type.

      Pengembangan data di Alibaba Cloud E-MapReduce mendukung jenis job berikut: Shell, Hive, Hive SQL, Spark, SparkSQL, Spark Shell, Spark Streaming, MR, Sqoop, Pig, Flink, Streaming SQL, Presto SQL, dan Impala SQL.

      Catatan

      Job Type tidak dapat diubah setelah job dibuat.

    3. Klik OK.

      Setelah Anda membuat job, Anda dapat mengonfigurasi dan mengeditnya.

Konfigurasikan job

Untuk informasi selengkapnya tentang cara mengembangkan dan mengonfigurasi berbagai jenis job, lihat job. Bagian ini menjelaskan Basic Settings, Advanced Settings, shared library, dan Alert Settings dari sebuah job.

  1. Di halaman Edit Job, klik Job Settings di pojok kanan atas.

  2. Di panel Job Settings, konfigurasikan informasi dasar.

    Parameter

    Deskripsi

    Job overview

    Job Name

    Nama job yang Anda buat.

    Job Type

    Jenis job yang Anda buat.

    Retries After Failure

    Jumlah kali percobaan ulang job setelah gagal. Anda dapat memilih nilai dari 0 hingga 5.

    Policy upon Failure

    Kebijakan yang diterapkan jika job gagal. Opsi berikut tersedia:

    • Pause current workflow: Menjeda alur kerja saat ini jika job gagal.

    • Continue to run the next job: Melanjutkan ke job berikutnya dalam alur kerja jika job saat ini gagal.

    Berdasarkan kebutuhan bisnis Anda, Anda dapat mengaktifkan atau menonaktifkan sakelar Use latest job content and parameters.

    • Nonaktif: Percobaan ulang menggunakan konten dan parameter job asli.

    • Aktif: Percobaan ulang menggunakan konten dan parameter job terbaru.

    Description

    Klik Edit di sebelah kanan untuk mengubah deskripsi job.

    Runtime resources

    Klik ikon 加号 untuk menambahkan resource yang dibutuhkan job, seperti paket JAR atau UDF.

    Anda harus terlebih dahulu mengunggah resource ke OSS, lalu menambahkannya di bagian Runtime resources.

    Configuration parameters

    Tentukan nilai untuk variabel yang dirujuk dalam kode job. Anda dapat merujuk variabel dalam kode menggunakan format ${variable_name}.

    Klik ikon 加号 untuk menambahkan kunci dan nilai. Anda dapat memilih apakah akan mengenkripsi nilainya. Kunci adalah nama variabel, dan nilai adalah nilai variabel tersebut. Anda juga dapat mengonfigurasi variabel waktu berdasarkan waktu mulai terjadwal. Untuk informasi selengkapnya, lihat Konfigurasikan tanggal job.

  3. Di panel Job Settings, klik tab Advanced Settings.

    Parameter

    Deskripsi

    Mode

    • Submission node: Node tempat job dikirimkan. Untuk informasi selengkapnya, lihat mode pengiriman job. Mode berikut tersedia:

      • Submit on worker node: Launcher mengirimkan job dari node pekerja setelah YARN mengalokasikan resource.

      • Submit on header/gateway node: Job dijalankan langsung di node header/gateway.

    • Maximum expected runtime: 0 hingga 10.800 detik.

    Environment variables

    Tambahkan variabel lingkungan untuk eksekusi job. Anda juga dapat mengekspor variabel lingkungan secara langsung dalam skrip job.

    • Contoh 1: Untuk job Shell dengan konten echo ${ENV_ABC}, jika Anda mengatur variabel lingkungan ENV_ABC=12345, output perintah echo adalah 12345.

    • Contoh 2: Untuk job Shell dengan konten java -jar abc.jar, di mana konten abc.jar adalah sebagai berikut:

      public static void main(String[] args) {System.out.println(System.getEnv("ENV_ABC"));}

      Hasil yang dikembalikan adalah 12345. Mengatur variabel lingkungan di sini setara dengan menjalankan skrip berikut:

      export ENV_ABC=12345
      java -jar abc.jar

    Scheduling Parameters

    Konfigurasikan informasi penjadwalan untuk job, seperti antrian YARN, memori, vCores, prioritas, dan pengguna pengirim. Jika Anda tidak mengatur parameter ini, nilai default dari kluster Hadoop akan digunakan.

    Catatan

    Pengaturan memori mengonfigurasi kuota memori untuk launcher.

  4. Di panel Job Settings, klik tab Shared library.

    Di area Dependent library, tentukan Databases.

    Eksekusi job mungkin bergantung pada file library tertentu yang terkait dengan sumber data. Alibaba Cloud E-MapReduce menyediakan library ini sebagai shared library dalam repositori layanan penjadwalan. Saat membuat job, Anda harus menentukan versi library dependensi yang akan digunakan. Contohnya: sharedlibs:streamingsql:datasources-bundle:2.0.0.

  5. Di panel Job Settings, klik tab Alert Settings.

    Parameter

    Deskripsi

    Failed

    Mengirimkan notifikasi ke kelompok alert pengguna atau kelompok alert DingTalk jika job gagal.

    Startup Timed Out

    Mengirimkan notifikasi ke kelompok alert pengguna atau kelompok alert DingTalk jika startup job melebihi batas waktu.

    On execution timeout

    Mengirimkan notifikasi ke kelompok alert pengguna atau kelompok alert DingTalk jika eksekusi job melebihi batas waktu.

Tambahkan anotasi ke job

Selama pengembangan data, Anda dapat menambahkan parameter job dengan menambahkan anotasi tertentu ke konten job. Format anotasi adalah sebagai berikut:

!!! @<AnnotationName>: <AnnotationContent>
Catatan

Karakter !!! harus berada di awal baris tanpa indentasi. Gunakan satu anotasi per baris.

Anotasi berikut didukung.

Nama anotasi

Deskripsi

Contoh

rem

Menunjukkan baris komentar.

!!! @rem: This is a comment.

env

Menambahkan variabel lingkungan.

!!! @env: ENV_1=ABC

var

Menambahkan variabel kustom.

!!! @var: var1="value1 and \"one string end with 3 spaces\" "
!!! @var: var2=${yyyy-MM-dd}

resource

Menambahkan file resource.

!!! @resource: oss://bucket1/dir1/file.jar

sharedlibs

Menambahkan library dependensi. Anotasi ini hanya berlaku untuk job Streaming SQL. Jika Anda menentukan beberapa library, pisahkan dengan koma (,).

!!! @sharedlibs: sharedlibs:streamingsql:datasources-bundle:1.7.0,...

scheduler.queue

Menetapkan antrian pengiriman.

!!! @scheduler.queue: default

scheduler.vmem

Menetapkan memori yang diminta, dalam MB.

!!! @scheduler.vmem: 1024

scheduler.vcores

Menetapkan jumlah vCores yang diminta.

!!! @scheduler.vcores: 1

scheduler.priority

Menetapkan prioritas permintaan. Nilainya berkisar antara 1 hingga 100.

!!! @scheduler.priority: 1

scheduler.user

Menetapkan username pengirim.

!!! @scheduler.user: root
Penting

Saat menggunakan anotasi, perhatikan hal berikut:

  • Sistem secara otomatis mengabaikan anotasi yang tidak valid.

  • Parameter job yang ditentukan dalam anotasi menggantikan parameter yang dikonfigurasi di pengaturan job.

Jalankan job

  1. Jalankan job.

    1. Di halaman job, klik Run di pojok kanan atas.

    2. Di kotak dialog Run Job, pilih resource group dan kluster eksekusi.

    3. Klik OK.

  2. Lihat log eksekusi job.

    1. Setelah job mulai berjalan, Anda dapat melihat log eksekusinya di tab Log.

      2021-09-02 16:37:54.653 [main] INFO  c.a.e.f.a.j.l.impl.CommonShellJobLauncherImpl - [COMMAND][FJI-xxx] submit user: hadoop
      2021-09-02 16:37:54.654 [main] INFO  c.a.e.f.a.j.l.impl.CommonShellJobLauncherImpl - [COMMAND][FJI-3xxx] envs(override): {EMR_FLOW_AGENT_JOB_ID=FJI-xxx, PATH=/mnt/disk3/yarn/usercache/hadoop/appcache/application_1630311773326_0022/container_1630311773326_0022_01_000001, EMR_FLOW_CLUSTER_ID=C-xxx, FLOW_SKIP_SQL_ANALYZE=false, EMR_FLOW_JOB_INSTANCE_ID="xxx", EMR_FLOW_NODE_INSTANCE_ID="xxx", EMR_FLOW_JOB_ID="xxx"}
      2021-09-02 16:37:54.654 [main] INFO  c.a.e.f.a.j.l.impl.CommonShellJobLauncherImpl - [COMMAND][xxx] Executing command line: [bash, -c, echo 234]
      2021-09-02 16:37:54.655 [main] INFO  c.a.e.f.a.j.l.impl.CommonShellJobLauncherImpl - [COMMAND][FJI-3xxx] Shell Executor type: com.aliyun.emr.flow.agent.common.shell.JavaShellExecutor.
      ===================JOB OUTPUT BEGIN===================
      234
      ===================JOB OUTPUT END=====================
      2021-09-02 16:37:55.159 [main] INFO  c.a.e.f.a.j.l.impl.CommonShellJobLauncherImpl - [COMMAND][FJI-3E78xxx] Finished command line, exit code=0.
      Thu Sep 02 16:37:55 CST 2021 [JobLauncherRunner] INFO Closing job launcher ...
      2021-09-02 16:37:55.161 [main] INFO  c.a.emr.flow.agent.jobs.launcher.JobLauncherBase - [FJI-3E788xxx] Closing ...
      2021-09-02 16:37:55.162 [main] INFO  c.a.e.f.a.j.l.impl.CommonShellJobLauncherImpl - [FJI-3E788F6xxx] Stopping command executor ...
      Thu Sep 02 16:37:55 CST 2021 [YarnJobLauncherAM] INFO Closing launcher am ...
      2021-09-02 16:37:55.167 [main] INFO  o.a.hadoop.yarn.client.api.impl.AMRMClientImpl - Waiting for application to be successfully unregistered.
      Thu Sep 02 16:37:55 CST 2021 [YarnJobLauncherAM] INFO Emr flow launcher is quit.
      2021-09-02 16:37:55.385 [Shutdown-FJI-3E788F67373BAECD_0] INFO  c.a.emr.flow.agent.jobs.launcher.JobLauncherBase - [FJI-3E78xxx] Call shutdown hook.
      2021-09-02 16:37:55.385 [Shutdown-FJI-3E788F67373BAECD_0] INFO  c.a.emr.flow.agent.jobs.launcher.JobLauncherBase - [FJI-378xxx] Closing ...
      2021-09-02 16:37:55.385 [Shutdown-FJI-3E788F67373BAECD_0] INFO  c.a.emr.flow.agent.jobs.launcher.JobLauncherBase - [FJI-3E78xxx] This launcher is closed already, skip.
      ######END_OF_LOG######
    2. Klik tab Execution Records untuk melihat catatan eksekusi job.

    3. Klik Details pada suatu catatan untuk membuka O&M Center, tempat Anda dapat melihat informasi detail tentang instans job.

Operasi yang tersedia untuk job

Di area Edit Job, Anda dapat mengklik kanan nama job untuk melakukan operasi berikut.

Aksi

Deskripsi

Clone Job

Mengkloning konfigurasi job saat ini untuk membuat job baru di folder yang sama.

Rename Job

Mengganti nama job.

Delete job

Anda hanya dapat menghapus job jika job tersebut tidak terkait dengan alur kerja apa pun, atau jika alur kerja terkaitnya sedang tidak berjalan atau dijadwalkan.

Mode pengiriman job

Proses spark-submit, yang merupakan launcher dalam modul pengembangan data, adalah perintah Spark yang digunakan untuk mengirimkan job Spark. Proses ini biasanya mengonsumsi memori 600 MB atau lebih. Pengaturan memori di panel pengaturan job mengonfigurasi kuota memori untuk launcher.

Dua mode pengiriman job berikut tersedia:

Mode pengiriman pekerjaan

Deskripsi

Submit on header/gateway node

Proses spark-submit berjalan di node header/gateway dan tidak dipantau oleh YARN. Karena spark-submit mengonsumsi banyak memori, menjalankan terlalu banyak job dalam mode ini dapat memberatkan resource node header/gateway dan berisiko menyebabkan ketidakstabilan kluster.

Submit on worker node

Proses spark-submit berjalan di node pekerja, menempati container YARN, dan dipantau oleh YARN. Mode ini dapat meringankan beban resource di node header/gateway.

Dalam kluster Alibaba Cloud E-MapReduce, memori yang dikonsumsi oleh instans job dihitung sebagai berikut:

Memory consumed by a job instance = Memory consumed by the launcher + Memory consumed by the user job

Untuk job Spark, memori yang dikonsumsi oleh job pengguna dapat diuraikan lebih lanjut sebagai berikut:

Memory consumed by the job = Memory consumed by spark-submit (logical module, not process) + Memory consumed by the driver + Memory consumed by the executor

Lokasi memori fisik driver bervariasi tergantung pada konfigurasi job, seperti yang dijelaskan dalam tabel berikut.

Mode eksekusi Spark

spark-submit dan driver

Detail proses

Yarn-Client mode

Proses pengiriman job menggunakan mode LOCAL

spark-submit dan driver berjalan dalam proses yang sama.

Proses pengiriman job berjalan di node header/gateway dan tidak dipantau oleh YARN.

Proses pengiriman job menggunakan mode YARN

Proses pengiriman job berjalan di node pekerja, menempati container YARN, dan dipantau oleh YARN.

Yarn-Cluster mode

Driver berjalan dalam proses terpisah dari spark-submit.

Driver menempati container YARN.