Buat tindakan bootstrap untuk menginstal perangkat lunak tambahan - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat tindakan bootstrap untuk menginstal perangkat lunak tambahan

Anda dapat menggunakan Tindakan bootstrap untuk menginstal perangkat lunak tambahan atau menyesuaikan konfigurasi instans klaster. Tindakan Bootstrap adalah skrip yang berjalan di cluster setelah Amazon EMR meluncurkan instance menggunakan Amazon Linux Amazon Machine Image ()AMI. Tindakan Bootstrap berjalan sebelum Amazon EMR menginstal aplikasi yang Anda tentukan saat Anda membuat cluster dan sebelum node cluster mulai memproses data. Jika Anda menambahkan simpul ke klaster yang sedang berjalan, tindakan bootstrap juga berjalan pada simpul tersebut dengan cara yang sama. Anda dapat membuat tindakan bootstrap kustom dan menentukannya saat membuat klaster.

Sebagian besar tindakan bootstrap yang telah ditentukan untuk Amazon EMR AMI versi 2.x dan 3.x tidak didukung dalam rilis Amazon EMR 4.x. Misalnya, configure-Hadoop dan tidak configure-daemons didukung di Amazon EMR rilis 4.x. Sebagai gantinya, Amazon EMR release 4.x secara native menyediakan fungsionalitas ini. Untuk informasi selengkapnya tentang cara memigrasikan tindakan bootstrap dari Amazon EMR AMI versi 2.x dan 3.x ke Amazon EMR rilis 4.x, buka Menyesuaikan konfigurasi klaster dan aplikasi dengan versi Amazon sebelumnya di AMI EMR Panduan Rilis Amazon. EMR

Dasar-dasar tindakan bootstrap

Tindakan bootstrap dijalankan sebagai pengguna Hadoop secara default. Anda dapat menjalankan tindakan bootstrap dengan hak akses root menggunakan sudo.

Semua antarmuka EMR manajemen Amazon mendukung tindakan bootstrap. Anda dapat menentukan hingga 16 tindakan bootstrap per cluster dengan menyediakan beberapa bootstrap-actions parameter dari konsol, AWS CLI, atauAPI.

Dari EMR konsol Amazon, Anda dapat secara opsional menentukan tindakan bootstrap saat membuat cluster.

Saat Anda menggunakanCLI, Anda dapat meneruskan referensi ke skrip tindakan bootstrap ke Amazon EMR dengan menambahkan --bootstrap-actions parameter saat Anda membuat cluster menggunakan create-cluster perintah.

--bootstrap-actions Path="s3://mybucket/filename",Args=[arg1,arg2]

Jika tindakan bootstrap mengembalikan kode kesalahan bukan nol, Amazon EMR memperlakukannya sebagai kegagalan dan menghentikan instance. Jika terlalu banyak instance gagal dalam tindakan bootstrap mereka, maka Amazon EMR menghentikan cluster. Jika hanya beberapa contoh yang gagal, Amazon EMR mencoba mengalokasikan kembali instance yang gagal dan melanjutkan. Gunakan kode kesalahan lastStateChangeReason klaster untuk mengidentifikasi kegagalan yang disebabkan oleh tindakan bootstrap.

Jalankan tindakan bootstrap secara kondisional

Untuk hanya menjalankan tindakan bootstrap pada node master, Anda dapat menggunakan tindakan bootstrap khusus dengan beberapa logika untuk menentukan apakah node tersebut master.

#!/bin/bash if grep isMaster /mnt/var/lib/info/instance.json | grep false; then echo "This is not master node, do nothing,exiting" exit 0 fi echo "This is master, continuing to execute script" # continue with code logic for master node below

Output berikut akan mencetak dari node inti.

This is not master node, do nothing, exiting

Output berikut akan mencetak dari master node.

This is master, continuing to execute script

Untuk menggunakan logika ini, unggah tindakan bootstrap Anda, termasuk kode di atas, ke bucket Amazon S3 Anda. Pada AWS CLI, tambahkan --bootstrap-actions parameter ke aws emr create-cluster API panggilan dan tentukan lokasi skrip bootstrap Anda sebagai nilaiPath.

Tindakan penghentian

Skrip tindakan bootstrap dapat membuat satu atau lebih tindakan penghentian dengan menulis skrip ke direktori /mnt/var/lib/instance-controller/public/shutdown-actions/. Ketika sebuah cluster diakhiri, semua skrip di direktori ini dijalankan secara paralel. Setiap skrip harus dijalankan dan diselesaikan dalam waktu 60 detik.

Skrip tindakan penghentian tidak dijamin berjalan jika simpul diakhiri karena kesalahan.

catatan

Saat menggunakan Amazon EMR versi 4.0 dan yang lebih baru, Anda harus membuat /mnt/var/lib/instance-controller/public/shutdown-actions/ direktori secara manual pada node master. Ini tidak ada secara default; namun, setelah dibuat, skrip di direktori ini tetap berjalan sebelum dihentikan. Untuk informasi lebih lanjut tentang menghubungkan ke Simpul utama untuk membuat direktori, lihat Connect ke node utama menggunakan SSH.

Gunakan tindakan bootstrap kustom

Anda dapat membuat skrip kustom untuk melakukan tindakan bootstrap yang disesuaikan. Salah satu EMR antarmuka Amazon dapat mereferensikan tindakan bootstrap khusus.

catatan

Untuk kinerja terbaik, kami menyarankan Anda menyimpan tindakan bootstrap kustom, skrip, dan file lain yang ingin Anda gunakan dengan Amazon EMR di bucket Amazon S3 yang Wilayah AWS sama dengan cluster Anda.

Tambahkan tindakan bootstrap kustom

Console
Untuk membuat cluster dengan aksi bootstrap dengan konsol
  1. Masuk ke AWS Management Console, dan buka EMR konsol Amazon di https://console.aws.amazon.com/emr.

  2. Di bawah EMREC2di panel navigasi kiri, pilih Clusters, lalu pilih Create cluster.

  3. Di bawah Tindakan Bootstrap, pilih Tambahkan untuk menentukan nama, lokasi skrip, dan argumen opsional untuk tindakan Anda. Pilih Tambahkan tindakan bootstrap.

  4. Secara opsional, tambahkan lebih banyak tindakan bootstrap.

  5. Pilih opsi lain yang berlaku untuk cluster Anda.

  6. Untuk meluncurkan klaster Anda, pilih Buat klaster.

CLI
Untuk membuat cluster dengan aksi bootstrap khusus dengan AWS CLI

Saat menggunakan AWS CLI untuk menyertakan tindakan bootstrap, tentukan Path dan Args sebagai daftar yang dipisahkan koma. Contoh berikut tidak menggunakan daftar argumen.

  • Untuk meluncurkan cluster dengan tindakan bootstrap kustom, ketik perintah berikut, ganti myKey dengan nama EC2 key pair Anda. Sertakan --bootstrap-actions sebagai parameter dan tentukan lokasi skrip bootstrap Anda sebagai nilaiPath.

    • Pengguna LinuxUNIX,, dan Mac OS X:

      aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 \ --use-default-roles --ec2-attributes KeyName=myKey \ --applications Name=Hive Name=Pig \ --instance-count 3 --instance-type m5.xlarge \ --bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/download.sh"
    • Pengguna Windows:

      aws emr create-cluster --name "Test cluster" --release-label emr-4.2.0 --use-default-roles --ec2-attributes KeyName=myKey --applications Name=Hive Name=Pig --instance-count 3 --instance-type m5.xlarge --bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/download.sh"

    Saat Anda menentukan jumlah instance tanpa menggunakan --instance-groups parameter, satu node primer diluncurkan, dan instance yang tersisa diluncurkan sebagai node inti. Semua simpul akan menggunakan tipe instans yang ditentukan dalam perintah.

    catatan

    Jika sebelumnya Anda belum membuat peran EMR layanan Amazon default dan profil EC2 instance, ketik aws emr create-default-roles untuk membuatnya sebelum mengetik create-cluster subperintah.

    Untuk informasi selengkapnya tentang menggunakan EMR perintah Amazon di AWS CLI, lihathttps://docs.aws.amazon.com/cli/latest/reference/emr.

Gunakan tindakan bootstrap kustom untuk menyalin objek dari Amazon S3 ke setiap simpul

Anda dapat menggunakan tindakan bootstrap untuk menyalin objek dari Amazon S3 ke setiap simpul dalam klaster sebelum aplikasi Anda diinstal. AWS CLI Ini diinstal pada setiap node cluster, sehingga tindakan bootstrap Anda dapat memanggil AWS CLI perintah.

Contoh berikut menunjukkan skrip tindakan bootstrap sederhana yang menyalin file, myfile.jar, dari Amazon S3 ke folder lokal, /mnt1/myfolder, pada setiap simpul klaster. Skrip disimpan ke Amazon S3 dengan nama file copymyfile.sh yang berisi konten berikut.

#!/bin/bash aws s3 cp s3://mybucket/myfilefolder/myfile.jar /mnt1/myfolder

Saat Anda meluncurkan klaster, Anda menentukan skrip. AWS CLI Contoh berikut menunjukkan ini:

aws emr create-cluster --name "Test cluster" --release-label emr-7.2.0 \ --use-default-roles --ec2-attributes KeyName=myKey \ --applications Name=Hive Name=Pig \ --instance-count 3 --instance-type m5.xlarge \ --bootstrap-actions Path="s3://mybucket/myscriptfolder/copymyfile.sh"