Dalam sebuah proyek, Anda dapat membuat job untuk pengembangan data.
Informasi latar belakang
Topik ini mencakup hal-hal berikut:
Prasyarat
Anda telah membuat proyek atau telah ditambahkan ke dalam proyek. Untuk informasi selengkapnya, lihat Manajemen proyek.
Buat job
-
Buka halaman Projects di Data Platform.
-
Login ke Konsol E-MapReduce dengan Akun Alibaba Cloud Anda.
-
Di bilah navigasi atas, pilih wilayah dan resource group.
-
Klik tab Data Development.
-
-
Pada baris proyek yang ingin Anda edit, klik Edit Job.
-
Buat job.
-
Di panel kiri, klik kanan folder target dan pilih New job.
CatatanAnda juga dapat mengklik kanan folder untuk melakukan tindakan lain, seperti New subfolder, Rename folder, dan Delete Folder.
-
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.
CatatanJob Type tidak dapat diubah setelah job dibuat.
-
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.
-
Di halaman Edit Job, klik Job Settings di pojok kanan atas.
-
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. -
-
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 lingkunganENV_ABC=12345, output perintahechoadalah12345. -
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.
CatatanPengaturan memori mengonfigurasi kuota memori untuk launcher.
-
-
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. -
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>
Karakter !!! harus berada di awal baris tanpa indentasi. Gunakan satu anotasi per baris.
Anotasi berikut didukung.
|
Nama anotasi |
Deskripsi |
Contoh |
|
rem |
Menunjukkan baris komentar. |
|
|
env |
Menambahkan variabel lingkungan. |
|
|
var |
Menambahkan variabel kustom. |
|
|
resource |
Menambahkan file resource. |
|
|
sharedlibs |
Menambahkan library dependensi. Anotasi ini hanya berlaku untuk job Streaming SQL. Jika Anda menentukan beberapa library, pisahkan dengan koma (,). |
|
|
scheduler.queue |
Menetapkan antrian pengiriman. |
|
|
scheduler.vmem |
Menetapkan memori yang diminta, dalam MB. |
|
|
scheduler.vcores |
Menetapkan jumlah vCores yang diminta. |
|
|
scheduler.priority |
Menetapkan prioritas permintaan. Nilainya berkisar antara 1 hingga 100. |
|
|
scheduler.user |
Menetapkan username pengirim. |
|
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
-
Jalankan job.
-
Di halaman job, klik Run di pojok kanan atas.
-
Di kotak dialog Run Job, pilih resource group dan kluster eksekusi.
-
Klik OK.
-
-
Lihat log eksekusi job.
-
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###### -
Klik tab Execution Records untuk melihat catatan eksekusi job.
-
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. |
|