全部产品
Search
文档中心

DataWorks:Node Shell EMR

更新时间:Nov 10, 2025

Anda dapat membuat node Shell E-MapReduce (EMR) di DataWorks untuk memenuhi kebutuhan bisnis tertentu. Dengan mengedit skrip Shell kustom, Anda dapat memanfaatkan fitur-fitur tingkat lanjut seperti pemrosesan data, pemanggilan komponen Hadoop, dan pengelolaan file. Topik ini menjelaskan cara mengonfigurasi dan menggunakan node Shell EMR di DataWorks untuk mengedit serta menjalankan tugas Shell.

Prasyarat

  • Sebelum mengembangkan node, buat gambar kustom berdasarkan citra resmi dataworks_emr_base_task_pod, lalu gunakan citra tersebut di Data Studio untuk menyesuaikan lingkungan komponen.

    Sebagai contoh, saat membuat gambar kustom, Anda dapat mengganti paket JAR Spark atau menyertakan libraries, files, atau JAR packages tertentu.

  • Anda telah membuat kluster Alibaba Cloud EMR dan mengaitkannya dengan DataWorks. Untuk informasi selengkapnya, lihat Data Studio (versi baru): Mengaitkan sumber daya komputasi EMR.

  • (Opsional) Jika Anda adalah Pengguna Resource Access Management (RAM), pastikan Anda telah ditambahkan ke ruang kerja untuk pengembangan tugas dan telah diberikan peran Developer atau Workspace Administrator. Peran Workspace Administrator memiliki izin yang luas; berikan peran ini dengan hati-hati. Untuk informasi selengkapnya tentang penambahan anggota, lihat Menambahkan anggota ke ruang kerja.

    Jika Anda menggunakan akun Alibaba Cloud, Anda dapat melewati langkah ini.

Batasan

  • Jenis node ini hanya dapat dijalankan pada kelompok sumber daya arsitektur tanpa server (disarankan) atau grup sumber daya eksklusif untuk penjadwalan. Untuk menggunakan citra di Data Studio, Anda harus menggunakan kelompok sumber daya arsitektur tanpa server.

  • Jika Anda ingin mengelola metadata untuk DataLake atau kluster kustom di DataWorks, Anda harus terlebih dahulu mengonfigurasi EMR-HOOK di kluster tersebut. Untuk informasi selengkapnya tentang cara mengonfigurasi EMR-HOOK, lihat Mengonfigurasi EMR-HOOK untuk Hive.

    Catatan

    Jika EMR-HOOK tidak dikonfigurasi di kluster Anda, metadata tidak dapat ditampilkan secara real time, log audit tidak dapat dihasilkan, alur data tidak dapat ditampilkan, dan tugas administrasi terkait EMR tidak dapat dilakukan di DataWorks.

  • Untuk tugas yang dikirimkan menggunakan spark-submit, kami menyarankan agar Anda mengatur deploy-mode ke cluster, bukan client.

  • Node Shell EMR dijalankan pada kelompok sumber daya DataWorks untuk penjadwalan, bukan di kluster EMR. Anda dapat menggunakan beberapa perintah komponen EMR, tetapi tidak dapat langsung membaca informasi sumber daya dari EMR. Untuk mereferensikan sumber daya, Anda harus terlebih dahulu mengunggah sumber daya tersebut ke DataWorks. Untuk informasi selengkapnya, lihat Resource Management.

  • Node Shell EMR tidak mendukung menjalankan file Python. Anda dapat menggunakan node Shell untuk menjalankan file Python.

Prosedur

  1. Pada halaman editor node Shell EMR, kembangkan node tersebut.

    Kembangkan kode Shell

    Anda dapat memilih salah satu metode berikut berdasarkan skenario Anda:

    Metode 1: Unggah lalu referensikan sumber daya EMR JAR

    DataWorks memungkinkan Anda mengunggah sumber daya dari mesin lokal ke Data Studio, lalu mereferensikan sumber daya tersebut. Jika Anda menggunakan kluster DataLake, Anda harus mengikuti langkah-langkah ini untuk mereferensikan sumber daya EMR JAR. Jika node Shell EMR bergantung pada sumber daya besar yang tidak dapat diunggah melalui halaman DataWorks, Anda dapat menyimpan sumber daya tersebut di Sistem File Terdistribusi Hadoop (HDFS) dan mereferensikannya dalam kode Anda.

    1. Buat sumber daya EMR JAR.

      1. Untuk informasi selengkapnya, lihat Resource Management. Simpan paket JAR yang dihasilkan dalam Persiapkan data awal dan paket JAR di direktori emr/jars untuk sumber daya JAR, lalu klik Upload untuk mengunggah sumber daya JAR.

      2. Pilih Storage Path, Data Source, dan Resource Group.

      3. Klik Save.

      image

    2. Referensikan sumber daya EMR JAR.

      1. Buka node EMR Shell yang telah dibuat untuk membuka halaman editor kode.

      2. Temukan sumber daya yang ingin Anda referensikan (misalnya, onaliyun_mr_wordcount-1.0-SNAPSHOT.jar) di Resource Management pada panel navigasi sebelah kiri, klik kanan sumber daya tersebut, lalu pilih Reference Resources.

      3. Setelah Anda mereferensikan sumber daya, pernyataan referensi akan otomatis ditambahkan ke editor kode node EMR Shell. Kemudian, jalankan perintah berikut. Paket sumber daya, nama bucket, dan informasi path dalam perintah ini hanya untuk tujuan demonstrasi; gantilah dengan informasi aktual Anda.

      ##@resource_reference{"onaliyun_mr_wordcount-1.0-SNAPSHOT.jar"}
      onaliyun_mr_wordcount-1.0-SNAPSHOT.jar cn.apache.hadoop.onaliyun.examples.EmrWordCount oss://onaliyun-bucket-2/emr/datas/wordcount02/inputs oss://onaliyun-bucket-2/emr/datas/wordcount02/outputs
      Catatan

      Komentar tidak didukung saat Anda mengedit kode untuk node Shell EMR.

    Metode 2: Langsung mereferensikan sumber daya OSS

    Anda dapat langsung mereferensikan sumber daya Object Storage Service (OSS) dari sebuah node menggunakan pernyataan OSS REF. Saat Anda menjalankan node EMR, DataWorks secara otomatis memuat sumber daya OSS yang ditentukan dalam kode ke mesin lokal Anda. Metode ini sering digunakan dalam skenario di mana tugas EMR memerlukan dependensi JAR atau bergantung pada skrip. Format referensi adalah sebagai berikut:

    ossref://{endpoint}/{bucket}/{object}
    • endpoint: Titik akhir yang digunakan untuk mengakses OSS. Jika Anda mengosongkan parameter ini, Anda hanya dapat menggunakan bucket OSS yang berada di wilayah yang sama dengan kluster EMR.

    • Bucket: Kontainer yang digunakan untuk menyimpan objek di OSS. Setiap Bucket memiliki nama unik. Anda dapat masuk ke Konsol OSS untuk melihat semua Buckets di bawah akun saat ini.

    • object: Objek spesifik (nama file atau path) yang disimpan di Bucket.

    Contoh

    1. Unggah file contoh ke bucket OSS. Topik ini menggunakan emr_shell_test.sh sebagai contoh. File contoh berisi konten berikut:

      #!/bin/sh
      echo "Hello, DataWorks!"
    2. Langsung referensikan sumber daya OSS di node Shell EMR.

      sh ossref://oss-cn-shanghai.aliyuncs.com/test-oss-of-dataworks/emr_shell_test.sh
      Catatan

      oss-cn-shanghai.aliyuncs.com adalah endpoint, test-oss-of-dataworks adalah nama Bucket, dan emr_shell_test.sh adalah nama file object.

      Hasil berikut dikembalikan, yang merupakan keluaran dari file emr_shell_test.sh:

      ...
      >>> [2024-10-24 15:46:01][INFO   ][CommandExecutor       ]: Process ready to execute. command: sh ./emr_shell_test.sh
      >>> [2024-10-24 15:46:01][INFO   ][CommandExecutor       ]: Command state update to RUNNING
      >>> [2024-10-24 15:46:01][INFO   ][CommandExecutor       ]: Process start to execute...
      Process Output>>> Hello, DataWorks!
      ...

    Konfigurasikan parameter penjadwalan untuk node Shell EMR

    Anda dapat mengembangkan kode tugas di editor Shell dan mendefinisikan variabel dalam format ${variable_name}. Kemudian, pada tab Schedule di sisi kanan halaman editor node, tetapkan nilai variabel di bagian Scheduling Parameters. Hal ini memungkinkan parameter dilewatkan secara dinamis saat node dijadwalkan untuk dijalankan. Untuk informasi selengkapnya tentang cara menggunakan parameter penjadwalan, lihat Format parameter penjadwalan yang didukung. Kode berikut memberikan contoh.

    DD=`date`;
    echo "hello world, $DD"
    ## You can use scheduling parameters.
    echo ${var};
    Catatan

    Jika Anda menggunakan kluster DataLake, perintah-perintah berikut juga didukung:

    • Perintah Shell: Perintah Shell di direktori /usr/bin dan /bin, seperti ls dan echo.

    • Komponen Yarn: hadoop, hdfs, dan yarn.

    • Komponen Spark: spark-submit.

    • Komponen Sqoop: sqoop-export, sqoop-import, dan sqoop-import-all-tables.

    Saat menggunakan komponen ini, Anda harus menambahkan alamat IP kelompok sumber daya ke daftar putih RDS.

    Jalankan tugas Shell

    1. Pada tab Debug, konfigurasikan Compute Resource dan Resource Group.

      Catatan
      • Anda juga dapat mengonfigurasi CUs For Scheduling berdasarkan sumber daya yang diperlukan untuk eksekusi tugas. Nilai default-nya adalah 0.25 CUs.

      • Anda dapat mengonfigurasi informasi Image sesuai kebutuhan.

      • Untuk mengakses sumber data melalui jaringan publik atau di VPC, Anda harus menggunakan kelompok sumber daya untuk penjadwalan yang telah lulus uji konektivitas dengan sumber data tersebut. Untuk informasi selengkapnya, lihat Solusi konektivitas jaringan.

    2. Pada bilah alat, klik Run untuk menjalankan tugas Shell.

  2. Untuk menjalankan tugas node secara berkala, Anda dapat mengonfigurasi properti penjadwalan untuk node sesuai kebutuhan. Untuk informasi selengkapnya, lihat Mengonfigurasi properti penjadwalan untuk node.

    Catatan

    Untuk menyesuaikan lingkungan komponen, Anda dapat membuat gambar kustom berdasarkan citra resmi dataworks_emr_base_task_pod dan gunakan citra tersebut di Data Studio.

    Sebagai contoh, saat membuat gambar kustom, Anda dapat mengganti paket JAR Spark atau menyertakan libraries, files, atau JAR packages tertentu.

  3. Setelah mengonfigurasi tugas node, deploy node tersebut. Untuk informasi selengkapnya, lihat Deploy node dan alur kerja.

  4. Setelah tugas dipublikasikan, Anda dapat melihat status berjalan tugas yang dipicu otomatis di Operation Center. Untuk informasi selengkapnya, lihat Memulai Operation Center.

Referensi