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 klaster setelah Amazon EMR meluncurkan instans menggunakan Amazon Machine Image (AMI) Amazon Linux. Tindakan bootstrap dijalankan sebelum Amazon EMR menginstal aplikasi yang Anda tentukan saat membuat klaster dan sebelum simpul klaster 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 sebelumnya untuk AMI Amazon EMR versi 2.x dan 3.x tidak didukung di Amazon EMR rilis 4.x. Misalnya, configure-Hadoop dan configure-daemons tidak didukung di Amazon EMR rilis 4.x. Sebaliknya, Amazon EMR release 4.x secara native menyediakan fungsionalitas ini. Untuk informasi lebih lanjut tentang cara memigrasikan tindakan bootstrap dari Amazon EMR AMI versi 2.x dan 3.x ke Amazon EMR rilis 4.x, buka Menyesuaikan cluster dan konfigurasi aplikasi dengan versi AMI sebelumnya dari Amazon EMR di Panduan Rilis Amazon EMR Amazon.

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 manajemen Amazon EMR mendukung tindakan bootstrap. Anda dapat menentukan hingga 16 tindakan bootstrap per cluster dengan menyediakan beberapa bootstrap-actions parameter dari konsol, AWS CLI, atau API.

Dari konsol Amazon EMR, Secara opsional, Anda dapat menentukan tindakan bootstrap saat membuat klaster.

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

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

Jika tindakan bootstrap mengembalikan kode kesalahan bukan nol, Amazon EMR memperlakukannya sebagai kegagalan dan mengakhiri instans. Jika terlalu banyak instans yang gagal dalam tindakan bootstrapnya, Amazon EMR akan mengakhiri klaster. Jika hanya beberapa instans yang gagal, Amazon EMR akan mencoba mengalokasikan ulang instans yang gagal dan melanjutkannya. 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 panggilan aws emr create-cluster API 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 direktori /mnt/var/lib/instance-controller/public/shutdown-actions/ secara manual di simpul utama. 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. Antarmuka Amazon EMR mana pun dapat mereferensikan tindakan bootstrap kustom.

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 sama dengan cluster Anda. Wilayah AWS

Tambahkan tindakan bootstrap kustom

catatan

Kami telah mendesain ulang konsol EMR Amazon agar lebih mudah digunakan. Lihat Konsol Amazon EMR untuk mempelajari tentang perbedaan antara pengalaman konsol lama dan baru.

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

  2. Di bawah EMR pada EC2 di 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.

Old console
Untuk membuat cluster dengan aksi bootstrap khusus dengan konsol lama
  1. Arahkan ke konsol EMR Amazon baru dan pilih Beralih ke konsol lama dari navigasi samping. Untuk informasi selengkapnya tentang apa yang diharapkan saat beralih ke konsol lama, lihat Menggunakan konsol lama.

  2. Pilih Buat klaster.

  3. Klik Pergi ke opsi lanjutan.

  4. Di Buat Klaster - Opsi Lanjutan, Langkah 1 dan 2 pilih opsi yang diinginkan dan lanjutkan ke Langkah 3: Pengaturan Klaster Umum.

  5. Di bawah Tindakan Bootstrap pilih Konfigurasi dan tambahkan untuk menentukan Nama, lokasi JAR, dan argumen untuk tindakan bootstrap Anda. Pilih Tambahkan.

  6. Secara opsional tambahkan lebih banyak tindakan bootstrap sesuai keinginan.

  7. Lanjutkan untuk membuat klaster. Tindakan bootstrap Anda akan dilakukan setelah klaster telah disediakan dan diinisialisasi.

    Selama node utama cluster berjalan, Anda dapat terhubung ke node utama dan melihat file log yang dibuat oleh skrip tindakan bootstrap di /mnt/var/log/bootstrap-actions/1 direktori.

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 aksi bootstrap kustom, ketik perintah berikut, ganti myKey dengan nama key pair EC2 Anda. Sertakan --bootstrap-actions sebagai parameter dan tentukan lokasi skrip bootstrap Anda sebagai nilaiPath.

    • Pengguna Linux, UNIX, 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 Anda belum pernah membuat peran layanan Amazon EMR default dan profil instans EC2, ketik aws emr create-default-roles untuk membuatnya sebelum mengetik create-cluster subperintah.

    Untuk informasi selengkapnya tentang penggunaan perintah EMR Amazon di AWS CLI, lihat. https://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 hal ini:

aws emr create-cluster --name "Test cluster" --release-label emr-7.1.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"