全部产品
Search
文档中心

DataWorks:Buat node EMR Shell

更新时间:Jul 10, 2025

Anda dapat membuat node Shell E-MapReduce (EMR) di DataWorks untuk memenuhi kebutuhan bisnis tertentu. Anda dapat menentukan skrip Shell kustom dan menjalankannya untuk menggunakan fitur seperti pemrosesan data, pemanggilan komponen Hadoop, dan manajemen file. Topik ini menjelaskan cara mengonfigurasi dan menggunakan node EMR Shell di DataWorks.

Prasyarat

  • Sebelum mengembangkan node, jika Anda perlu menyesuaikan lingkungan komponen, Anda dapat membuat citra kustom berdasarkan citra resmi dataworks_emr_base_task_pod dan gunakan citra kustom di DataStudio.

    Sebagai contoh, Anda dapat mengganti paket JAR Spark atau menyertakan library, file, atau paket JAR tertentu saat membuat citra kustom.

  • Kluster EMR Alibaba Cloud dibuat dan didaftarkan ke DataWorks. Untuk informasi lebih lanjut, lihat DataStudio (versi lama): Asosiasikan sumber daya komputasi EMR.

  • (Diperlukan jika Anda menggunakan pengguna RAM untuk mengembangkan tugas) Pengguna RAM ditambahkan ke ruang kerja DataWorks sebagai anggota dan diberi peran Develop atau Workspace Administrator. Peran Administrator Ruang Kerja memiliki lebih banyak izin daripada yang diperlukan. Berhati-hatilah saat memberikan peran Administrator Ruang Kerja. Untuk informasi lebih lanjut tentang cara menambahkan anggota, lihat Tambahkan anggota ruang kerja dan tetapkan peran kepada mereka.

  • Grup sumber daya serverless dibeli dan dikonfigurasi. Konfigurasi mencakup asosiasi dengan ruang kerja dan konfigurasi jaringan. Untuk informasi lebih lanjut, lihat Buat dan gunakan grup sumber daya serverless.

  • Alur kerja dibuat di DataStudio.

    Operasi pengembangan di mesin komputasi berbeda dilakukan berdasarkan alur kerja di DataStudio. Oleh karena itu, sebelum Anda membuat node, Anda harus membuat alur kerja terlebih dahulu. Untuk informasi lebih lanjut, lihat Buat alur kerja.

  • Paket pihak ketiga diinstal berdasarkan grup sumber daya yang Anda gunakan. Paket pihak ketiga perlu dirujuk saat Anda menjalankan skrip Python pada grup sumber daya DataWorks.

    • Jika Anda menggunakan grup sumber daya serverless (direkomendasikan), Anda dapat menggunakan fitur manajemen citra untuk menginstal paket pihak ketiga. Untuk informasi lebih lanjut, lihat Kelola citra.

    • Jika Anda menggunakan grup sumber daya eksklusif untuk penjadwalan, Anda dapat menggunakan fitur O&M Assistant untuk menginstal paket pihak ketiga. Untuk informasi lebih lanjut, lihat Gunakan fitur O&M Assistant.

Batasan

  • Jenis node ini hanya dapat dijalankan pada grup sumber daya serverless atau grup sumber daya eksklusif untuk penjadwalan. Kami merekomendasikan Anda menggunakan grup sumber daya serverless. Jika Anda perlu menggunakan citra di DataStudio, gunakan grup sumber daya komputasi serverless.

  • Jika Anda ingin mengelola metadata untuk DataLake atau kluster kustom di DataWorks, Anda harus mengonfigurasi EMR-HOOK di kluster terlebih dahulu. Jika Anda tidak mengonfigurasi EMR-HOOK di kluster Anda, metadata tidak dapat ditampilkan secara real-time, log audit tidak dapat dihasilkan, dan garis keturunan data tidak dapat ditampilkan di DataWorks. Tugas tata kelola EMR juga tidak dapat dijalankan. Untuk informasi tentang cara mengonfigurasi EMR-HOOK, lihat Gunakan fitur ekstensi Hive untuk mencatat garis keturunan data dan informasi akses historis.

  • Jika Anda mengirimkan node menggunakan spark-submit, kami sarankan Anda mengatur deploy-mode ke cluster bukan client.

  • Node EMR Shell dijalankan pada grup sumber daya penjadwalan DataWorks, bukan di kluster EMR. Anda dapat menjalankan perintah tertentu yang didukung oleh komponen EMR tetapi tidak dapat langsung membaca informasi tentang sumber daya EMR. Jika Anda ingin merujuk sumber daya EMR dalam node EMR Shell, Anda harus mengunggah sumber daya ke DataWorks terlebih dahulu. Untuk informasi lebih lanjut, lihat Buat dan gunakan sumber daya EMR JAR.

  • Anda tidak dapat menggunakan node EMR Shell untuk menjalankan skrip Python. Untuk menjalankan skrip Python, gunakan node Shell.

Langkah 1: Buat node EMR Shell

  1. Pergi ke halaman DataStudio.

    Masuk ke Konsol DataWorks. Di bilah navigasi atas, pilih wilayah yang diinginkan. Di panel navigasi kiri, pilih Data Development and O&M > Data Development. Pada halaman yang muncul, pilih ruang kerja yang diinginkan dari daftar drop-down dan klik Go to Data Development.

  2. Buat node EMR Shell.

    1. Temukan alur kerja yang diinginkan, klik kanan nama alur kerja, dan pilih Create Node > EMR > EMR Shell.

      Catatan

      Sebagai alternatif, Anda dapat mengarahkan pointer ke ikon Create dan pilih Create Node > EMR > EMR Shell.

    2. Di kotak dialog Create Node, konfigurasikan parameter Name, Engine Instance, Node Type, dan Path. Klik Confirm. Tab konfigurasi node EMR Shell akan muncul.

      Catatan

      Nama node hanya dapat berisi huruf, angka, garis bawah (_), dan titik (.).

Langkah 2: Kembangkan tugas EMR Shell

Anda dapat menggunakan salah satu metode berikut berdasarkan kebutuhan bisnis Anda untuk mengembangkan tugas Shell pada tab konfigurasi node EMR Shell:

  • Unggah sumber daya dari mesin lokal Anda ke DataStudio dan kemudian rujuk sumber daya tersebut. Untuk informasi lebih lanjut, lihat bagian Metode 1: Unggah dan rujuk sumber daya EMR JAR dalam topik ini. Kami merekomendasikan Anda menggunakan metode ini.

  • Gunakan metode OSS REF untuk merujuk sumber daya OSS. Untuk informasi lebih lanjut, lihat bagian Metode 2: Rujuk sumber daya OSS dalam topik ini.

Metode 1: Unggah dan rujuk sumber daya EMR JAR

DataWorks memungkinkan Anda mengunggah sumber daya dari mesin lokal Anda ke DataStudio sebelum Anda dapat merujuk sumber daya tersebut. Jika kluster EMR yang ingin Anda gunakan adalah kluster DataLake, Anda dapat melakukan langkah-langkah berikut untuk merujuk sumber daya EMR JAR. Jika node EMR Shell bergantung pada sejumlah besar sumber daya, sumber daya tersebut tidak dapat diunggah menggunakan konsol DataWorks. Dalam kasus ini, Anda dapat menyimpan sumber daya di Hadoop Distributed File System (HDFS) dan merujuk sumber daya dalam kode node EMR Shell.

  1. Buat sumber daya EMR JAR.

    Untuk informasi lebih lanjut tentang cara membuat sumber daya EMR JAR, lihat Buat dan gunakan sumber daya EMR. Dalam contoh ini, paket JAR yang dihasilkan di bagian Siapkan data awal dan paket sumber daya JAR disimpan di direktori emr/jars. Direktori ini digunakan untuk menyimpan sumber daya JAR. Pertama kali Anda menggunakan sumber daya EMR JAR, klik Authorize untuk memberi otorisasi DataWorks mengakses sumber daya EMR JAR. Kemudian, klik Upload untuk mengunggah sumber daya JAR.新建JAR资源

  2. Rujuk paket JAR EMR.

    1. Buka node EMR Shell. Tab konfigurasi node muncul.

    2. Temukan sumber daya yang ingin dirujuk di bawah Resource di folder EMR, klik kanan nama sumber daya, dan pilih Insert Resource Path. Dalam contoh ini, sumber daya adalah onaliyun_mr_wordcount-1.0-SNAPSHOT.jar.引用资源

    3. Jika informasi dalam format ##@resource_reference{""} muncul di tab konfigurasi node EMR Shell, sumber daya kode dirujuk. Kemudian, jalankan kode berikut. Anda harus mengganti informasi dalam kode berikut dengan informasi aktual. Informasi tersebut mencakup nama paket sumber daya, nama bucket, dan direktori.

      ##@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

      Anda tidak dapat menambahkan komentar saat menulis kode untuk node EMR Shell.

Metode 2: Rujuk sumber daya OSS

Node saat ini dapat merujuk sumber daya OSS dengan menggunakan metode OSS REF. Saat Anda menjalankan tugas pada node, DataWorks secara otomatis memuat sumber daya OSS yang ditentukan dalam kode node. Metode ini biasanya digunakan dalam skenario di mana dependensi JAR diperlukan dalam tugas EMR atau tugas EMR perlu bergantung pada skrip. Format referensi:

ossref://{endpoint}/{bucket}/{object}
  • endpoint: titik akhir OSS. Jika parameter endpoint dibiarkan kosong, hanya sumber daya dalam bucket OSS yang berada di wilayah yang sama dengan kluster EMR saat ini yang dapat dirujuk.

  • bucket: wadah yang digunakan untuk menyimpan objek di OSS. Setiap bucket memiliki nama unik. Anda dapat masuk ke Konsol OSS untuk melihat semua buckets dalam akun login saat ini.

  • object: nama file atau path yang disimpan dalam bucket.

Contoh

  1. Unggah objek ke bucket OSS yang diinginkan. Dalam contoh ini, emr_shell_test.sh digunakan. Contoh konten:

    #!/bin/sh
    echo "Hello, DataWorks!"
  2. Rujuk sumber daya OSS dalam node EMR Shell.

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

    oss-cn-shanghai.aliyuncs.com adalah titik akhir OSS, test-oss-of-dataworks adalah nama bucket, dan emr_shell_test.sh adalah nama objek.

    Output dari emr_shell_test.sh:

    ...
    >>> [2024-10-24 15:46:01][INFO   ][CommandExecutor       ]: Proses siap untuk dieksekusi. command: sh ./emr_shell_test.sh
    >>> [2024-10-24 15:46:01][INFO   ][CommandExecutor       ]: Status perintah diperbarui ke RUNNING
    >>> [2024-10-24 15:46:01][INFO   ][CommandExecutor       ]: Proses mulai dieksekusi...
    Output Proses>>> Hello, DataWorks!
    ...

Konfigurasikan parameter penjadwalan untuk node EMR Shell

Di tab konfigurasi node EMR Shell, kembangkan kode node. Anda dapat mendefinisikan variabel dalam format ${Variable} di kode node dan mengonfigurasi parameter penjadwalan yang ditetapkan ke variabel sebagai nilai di bagian Scheduling Parameter tab Properties. Dengan cara ini, nilai parameter penjadwalan diganti secara dinamis dalam kode node saat node dijadwalkan untuk dijalankan. Untuk informasi lebih lanjut tentang cara menggunakan parameter penjadwalan, lihat Format yang didukung untuk parameter penjadwalan. Contoh kode:

DD=`date`;
echo "hello world, $DD"
## Parameter penjadwalan didukung.
echo ${var};
Catatan

Jika Anda menggunakan kluster DataLake EMR, baris perintah berikut juga didukung:

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

  • YARN: hadoop, hdfs, dan yarn.

  • Spark: spark-submit.

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

Untuk menggunakan layanan Sqoop, Anda harus menambahkan alamat IP grup sumber daya Anda ke daftar putih alamat IP instance ApsaraDB RDS yang digunakan untuk menyimpan metadata kluster EMR.

Jalankan tugas Shell

  1. Di bilah alat, klik ikon 高级运行. Di kotak dialog Parameters, pilih grup sumber daya yang diinginkan dari daftar drop-down Nama Grup Sumber Daya dan klik Run.

    Catatan
    • Jika Anda ingin mengakses sumber daya komputasi melalui Internet atau virtual private cloud (VPC), Anda harus menggunakan grup sumber daya penjadwalan yang terhubung ke sumber daya komputasi. Untuk informasi lebih lanjut, lihat Solusi konektivitas jaringan.

    • Jika Anda ingin mengubah grup sumber daya dalam operasi selanjutnya, Anda dapat mengklik ikon 高级运行 (Run with Parameters) untuk mengubah grup sumber daya di kotak dialog Parameter.

  2. Klik ikon 保存 di bilah alat atas untuk menyimpan skrip Shell.

  3. Opsional. Lakukan pengujian asap.

    Anda dapat melakukan pengujian asap pada node di lingkungan pengembangan saat Anda mengirimkan node atau setelah Anda mengirimkan node. Untuk informasi lebih lanjut, lihat Lakukan pengujian asap.

Langkah 3: Konfigurasikan properti penjadwalan

Jika Anda ingin sistem secara berkala menjalankan tugas pada node, Anda dapat mengklik Properties di panel navigasi kanan pada tab konfigurasi node untuk mengonfigurasi properti penjadwalan tugas berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Ikhtisar.

Catatan
  • Anda harus mengonfigurasi parameter Rerun dan Parent Nodes di tab Properti sebelum Anda mengirimkan tugas.

  • Jika Anda perlu menyesuaikan lingkungan komponen, Anda dapat membuat citra kustom berdasarkan citra resmi dataworks_emr_base_task_pod dan gunakan citra kustom di DataStudio.

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

Langkah 4: Terapkan tugas

Setelah tugas pada node dikonfigurasi, Anda harus mengirimkan dan menerapkan tugas tersebut. Setelah Anda mengirimkan dan menerapkan tugas, sistem menjalankan tugas secara berkala berdasarkan konfigurasi penjadwalan.

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

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

    Dalam kotak dialog Submit, konfigurasikan parameter Change description. Kemudian, tentukan apakah akan meninjau kode tugas setelah Anda mengirim tugas berdasarkan kebutuhan bisnis Anda.

    Catatan
    • Anda harus mengonfigurasi parameter Rerun dan Parent Nodes di tab Properti sebelum Anda mengirim tugas.

    • Anda dapat menggunakan fitur tinjauan kode untuk memastikan kualitas kode tugas dan mencegah kesalahan eksekusi tugas yang disebabkan oleh kode tugas yang tidak valid. Jika Anda mengaktifkan fitur tinjauan kode, kode tugas yang dikirimkan hanya dapat diterapkan setelah kode tugas tersebut lulus tinjauan kode. Untuk informasi lebih lanjut, lihat Tinjauan Kode.

Jika Anda menggunakan ruang kerja dalam mode standar, Anda harus menerapkan tugas di lingkungan produksi setelah Anda mengirimkan tugas. Untuk menerapkan tugas pada node, klik Deploy di sudut kanan atas tab konfigurasi node. Untuk informasi lebih lanjut, lihat Terapkan node.

Apa yang Harus Dilakukan Selanjutnya

Setelah Anda mengirimkan dan menerapkan tugas, tugas tersebut dijalankan secara berkala berdasarkan konfigurasi penjadwalan. Anda dapat mengklik Operation Center di sudut kanan atas tab konfigurasi node yang sesuai untuk pergi ke Pusat Operasi dan melihat status penjadwalan tugas. Untuk informasi lebih lanjut, lihat Lihat dan kelola tugas yang dipicu otomatis.

Referensi

Untuk informasi tentang cara menjalankan skrip Python pada node EMR Shell dengan menggunakan perintah Python 2 atau Python 3, lihat Gunakan node Shell untuk menjalankan skrip Python.