全部产品
Search
文档中心

E-MapReduce:Gunakan tindakan bootstrap untuk mengeksekusi skrip

更新时间:Jul 02, 2025

E-MapReduce (EMR) memungkinkan Anda menggunakan tindakan bootstrap untuk menginstal perangkat lunak pihak ketiga dan memodifikasi lingkungan runtime kluster. Topik ini menjelaskan cara menambahkan tindakan bootstrap serta memberikan beberapa contoh.

Informasi latar belakang

Tindakan bootstrap memungkinkan sistem secara otomatis mengeksekusi skrip tertentu pada node baru saat kluster dibuat, diperluas, atau autoscaling dipicu. Fitur eksekusi manual juga memungkinkan Anda mengeksekusi skrip yang ditentukan pada beberapa node yang ada secara bersamaan sesuai kebutuhan. Untuk informasi lebih lanjut tentang eksekusi skrip secara manual, lihat Eksekusi Skrip Secara Manual.

Tindakan bootstrap mirip dengan skrip yang dieksekusi secara manual. Saat membuat kluster atau setelah kluster dibuat, Anda dapat menggunakan tindakan bootstrap untuk melakukan operasi yang tidak didukung oleh kluster EMR. Contohnya:

  • Menggunakan Yellowdog Updater, Modified (YUM) untuk menginstal perangkat lunak dengan paket instalasi yang tersedia.

  • Mengunduh perangkat lunak publik dari internet.

  • Membaca data dari Object Storage Service (OSS).

  • Menginstal dan menjalankan layanan seperti Flink atau Impala.

Batasan

  • Anda dapat menambahkan maksimal 10 tindakan bootstrap dalam sebuah kluster. Tindakan tersebut dilakukan sesuai urutan yang Anda tentukan.

  • Secara default, akun root digunakan untuk mengeksekusi skrip yang ditentukan. Anda juga dapat menjalankan perintah su - hadoop di dalam skrip untuk beralih ke pengguna hadoop.

Tambahkan tindakan bootstrap

Anda dapat menggunakan salah satu metode berikut untuk menambahkan tindakan bootstrap:

Metode 1: Tambahkan tindakan bootstrap saat Anda membuat kluster

  1. Buka halaman EMR on ECS.

    1. Masuk ke Konsol EMR. Di panel navigasi kiri, klik EMR on ECS.

    2. Di bilah navigasi atas, pilih wilayah dan grup sumber daya sesuai kebutuhan bisnis Anda.

  2. Di halaman EMR on ECS, klik Create Cluster.

  3. Di bagian Advanced Settings pada langkah Basic Configuration, temukan Bootstrap Actions dan klik Add Bootstrap Action.

  4. Konfigurasikan parameter yang dijelaskan dalam tabel berikut.

    Parameter

    Deskripsi

    Action Name

    Nama tindakan bootstrap yang ingin Anda tambahkan.

    Script Path

    Jalur OSS tempat file skrip berada.

    Anda harus mengonfigurasi parameter ini dalam format oss://**/*.sh.

    Parameter

    Parameter skrip tindakan bootstrap. Parameter ini digunakan untuk menentukan nilai variabel yang direferensikan dalam skrip.

    Execution Time

    • Before Component Installation: Sistem mengeksekusi skrip sebelum layanan diinstal.

    • Before Component Startup: Sistem mengeksekusi skrip sebelum layanan yang diinstal dimulai.

    • After Component Startup: Sistem mengeksekusi skrip setelah layanan yang diterapkan dimulai.

      Gambar berikut menunjukkan prosedurnya.

    Execution Failure Policy

    • Proceed: Jika skrip gagal dieksekusi, sistem terus mengeksekusi skrip berikutnya. Ini tidak mempengaruhi pembuatan atau perluasan kluster.

    • Stop: Jika skrip gagal dieksekusi, sistem menghentikan eksekusi skrip. Pembuatan atau perluasan kluster gagal.

    Execution Scope

    Cakupan eksekusi. Nilai valid:

    • Cluster: Tindakan bootstrap berlaku untuk seluruh kluster.

    • Node Group Type: Tindakan bootstrap hanya berlaku untuk grup node jenis tertentu.

    Anda dapat merujuk pada contoh tindakan bootstrap di Contoh.

    Catatan

    Tindakan bootstrap yang ditambahkan mungkin gagal dieksekusi. Namun, kegagalan tersebut tidak mempengaruhi pembuatan kluster.

    Untuk informasi lebih lanjut, lihat Buat Kluster. Setelah kluster dibuat, Anda dapat memeriksa apakah ada pengecualian di tab Script Operation. Jika terjadi pengecualian, Anda dapat melihat log eksekusi skrip untuk pemecahan masalah.

Metode 2: Tambahkan tindakan bootstrap setelah Anda membuat kluster

  1. Buka tab Operasi Skrip.

    1. Masuk ke Konsol EMR. Di panel navigasi kiri, klik EMR on ECS.

    2. Di bilah navigasi atas, pilih wilayah dan grup sumber daya sesuai kebutuhan bisnis Anda.

    3. Temukan kluster yang ingin Anda kelola dan klik Layanan di kolom Aksi.

    4. Klik tab Script Operation.

  2. Pada tab Bootstrap Actions, klik Add Bootstrap Action.

  3. Di kotak dialog Add Bootstrap Action, konfigurasikan parameter yang dijelaskan dalam tabel berikut.

    image

    Parameter

    Deskripsi

    Name

    Nama tindakan bootstrap yang ingin Anda tambahkan.

    Script Address

    Jalur OSS tempat file skrip berada.

    Anda harus mengonfigurasi parameter ini dalam format oss://**/*.sh.

    Parameter

    Parameter skrip tindakan bootstrap. Parameter ini digunakan untuk menentukan nilai variabel yang direferensikan dalam skrip.

    Execution Scope

    Cakupan eksekusi. Nilai valid:

    • Cluster: Tindakan bootstrap berlaku untuk seluruh cluster.

    • Node Group Type: Tindakan bootstrap hanya berlaku untuk grup node dari jenis yang Anda pilih.

    • Node Group: Tindakan bootstrap hanya berlaku untuk grup node yang Anda pilih.

    Execution Time

    • Before Component Installation: Sistem mengeksekusi skrip sebelum layanan diinstal.

    • Before Component Startup: Sistem mengeksekusi skrip sebelum layanan yang diinstal dimulai.

    • After Component Startup: Sistem mengeksekusi skrip setelah layanan yang diterapkan dimulai.

      Gambar berikut menunjukkan prosedurnya.

    Execution Failure Policy

    • Proceed: Jika skrip gagal dieksekusi, sistem terus mengeksekusi skrip berikutnya. Ini tidak mempengaruhi pembuatan atau perluasan kluster.

    • Stop: Jika skrip gagal dieksekusi, sistem menghentikan eksekusi skrip. Pembuatan atau perluasan kluster gagal.

  4. Klik OK.

    Anda dapat merujuk pada contoh tindakan bootstrap di Contoh.

    Anda dapat melakukan operasi berikut pada tindakan bootstrap yang ada:

    • Edit tindakan bootstrap: Temukan tindakan bootstrap yang ingin Anda edit dan klik Edit di kolom Aksi.

    • Kloning tindakan bootstrap: Temukan tindakan bootstrap yang ingin Anda kloning dan klik Clone di kolom Aksi.

    • Hapus tindakan bootstrap: Temukan tindakan bootstrap yang ingin Anda hapus dan klik Delete di kolom Aksi.

Lihat log eksekusi skrip

Catatan

Disarankan untuk menambahkan logika pencetakan log di lokasi yang diinginkan dalam skrip. Dengan cara ini, Anda dapat melihat status skrip berdasarkan log operasional.

Anda dapat melakukan operasi berikut untuk melihat log eksekusi skrip tindakan bootstrap di panel Riwayat Operasi:

  1. Buka tab Layanan.

    1. Masuk ke Konsol EMR.

    2. Di panel navigasi kiri, klik EMR on ECS.

    3. Di bilah navigasi atas, pilih wilayah dan grup sumber daya sesuai kebutuhan bisnis Anda.

    4. Di halaman EMR on ECS, temukan kluster yang diinginkan dan klik Services di kolom Aksi.

  2. Di tab Operasi Skrip, temukan skrip yang ingin Anda kelola, dan klik Lihat Hasil Eksekusi di kolom Aksi.

  3. Di panel Operation History, temukan catatan operasi skrip tindakan bootstrap dan lihat detailnya.

    • DataLake, Dataflow, OLAP, DataServing, dan kluster kustom: Temukan catatan operasi create atau increaseNodeGroup dan klik 展开 untuk melihat detail aktivitas. Tugas yang namanya dimulai dengan RUN_BOOTSTRAP_CLUSTER_SCRIPT_<Nama tindakan bootstrap>_<ID tindakan bootstrap> adalah aktivitas terkait tindakan bootstrap. Anda dapat melihat log Stdout dan Stderr.

    • Kluster Hadoop, Data Science, dan EMR Studio: Temukan catatan operasi CREATE_CLUSTER atau RESIZE_CLUSTER dan klik 展开 untuk melihat detail aktivitas. Tugas yang namanya dimulai dengan RUN_SCRIPT_HOST_** di bawah pollDeployTaskStatusActivity adalah aktivitas terkait tindakan bootstrap. Anda dapat melihat log eksekusi Stdout dan Stderr.

Contoh

Saat menambahkan tindakan bootstrap, Anda harus menentukan nama tindakan bootstrap, jalur OSS file skrip, dan parameter skrip sesuai kebutuhan bisnis Anda. Saat tindakan bootstrap dilakukan, setiap node mengunduh skrip dari jalur OSS yang ditentukan dan mengeksekusi skrip secara langsung atau berdasarkan parameter opsional. Bagian ini menyediakan dua contoh.

  • Contoh 1

    Anda dapat menentukan file yang ingin Anda unduh dari OSS dalam skrip. Dalam contoh ini, Anda dapat menggunakan skrip berikut untuk mengunduh file <myFile>.tar.gz dari direktori oss://<yourBucket>/ dan mendekompres file tersebut ke direktori /<yourDir> di mesin lokal Anda.

    Penting

    Titik akhir OSS dalam skrip bisa berupa titik akhir internal, publik, atau VPC. Jika Anda menggunakan jaringan klasik, Anda harus menentukan titik akhir internal. Sebagai contoh, titik akhir internal yang sesuai dengan wilayah China (Hangzhou) adalah oss-cn-hangzhou-internal.aliyuncs.com. Jika Anda menggunakan virtual private cloud (VPC), Anda harus menentukan titik akhir yang dapat Anda akses dari VPC. Sebagai contoh, titik akhir yang sesuai dengan wilayah China (Hangzhou) adalah vpc100-oss-cn-hangzhou.aliyuncs.com.

    • DataLake, Dataflow, OLAP, DataServing, dan kluster kustom

      #!/bin/bash
      ossutil64 cp oss://<yourBucket>/<myFile>.tar.gz  ./  -e oss-cn-hangzhou-internal.aliyuncs.com -i <yourAccessKeyId>  -k <yourAccessKeySecret>
      mkdir -p /<yourDir>
      tar -zxvf <myFile>.tar.gz -C /<yourDir>
    • Kluster Hadoop

      #!/bin/bash
      osscmd --id=<yourAccessKeyId> --key=<yourAccessKeySecret> --host=oss-cn-hangzhou-internal.aliyuncs.com get oss://<yourBucket>/<myFile>.tar.gz ./
      mkdir -p /<yourDir>
      tar -zxvf <myFile>.tar.gz -C /<yourDir>
  • Contoh 2

    Anda dapat menggunakan YUM untuk menginstal perangkat lunak sistem tambahan. Sebagai contoh, Anda dapat menggunakan skrip berikut untuk menginstal ld-linux.so.2:

    #!/bin/bash
    yum install -y ld-linux.so.2

FAQ

  • Apa yang harus saya lakukan jika skrip tindakan bootstrap terganggu tetapi tidak ada pesan kesalahan yang ditampilkan dalam log skrip?

    Disarankan untuk menambahkan logika pencetakan log di lokasi yang diinginkan dalam skrip. Dengan cara ini, Anda dapat melihat status skrip berdasarkan log operasional. Dalam banyak kasus, kesalahan yang terjadi dalam skrip kluster mungkin disebabkan oleh salah satu alasan berikut:

    • Koneksi jaringan tidak normal. Instance ECS kluster dan Bucket OSS harus berada di wilayah yang sama. Sebagai contoh, instance ECS di wilayah China (Beijing) tidak dapat terhubung ke Bucket OSS di wilayah selain China (Beijing).

    • Instance ECS kluster gagal mendapatkan pasangan AccessKey. Dalam banyak kasus, masalah ini terjadi karena instance ECS tidak diberi peran AliyunECSInstanceForEMRRole.

    • Perintah nohup digunakan dalam skrip tetapi output tidak dialihkan. Akibatnya, tugas gagal keluar untuk waktu yang lama. Gunakan nohup ... >*** 2>&1.

    • Baris baru disertakan saat skrip diedit di instance ECS Anda yang menjalankan sistem operasi Windows. Akibatnya, kesalahan terjadi saat skrip dieksekusi di lingkungan Linux. Anda dapat memeriksa apakah log kesalahan dalam riwayat operasi berisi ^M. Jika log kesalahan berisi ^M, disarankan untuk mengedit skrip lagi di lingkungan Linux dan mengunggahnya ke OSS.

  • Apa yang harus saya lakukan jika skrip tindakan bootstrap tidak berisi perintah terkait YARN atau Hadoop Distributed File System (HDFS)?

    Secara default, tidak ada informasi profil yang terkandung dalam skrip kluster EMR. Jika Anda ingin menjalankan perintah terkait YARN atau HDFS dalam skrip, tambahkan . /etc/profile ke awal skrip.

    Penting

    Saat menambahkan . /etc/profile, pastikan ada spasi antara . dan /etc/profile.