

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

# Konfigurasikan aplikasi saat Anda meluncurkan klaster EMR Amazon
<a name="emr-plan-software"></a>

Saat Anda memilih rilis perangkat lunak, Amazon EMR menggunakan Amazon Machine Image (AMI) dengan Amazon Linux untuk menginstal perangkat lunak yang Anda pilih saat meluncurkan klaster, seperti Hadoop, Spark, dan Hive. Amazon EMR menyediakan rilis baru secara berkala, menambahkan fitur baru, aplikasi baru, dan pembaruan umum. Kami menyarankan Anda menggunakan rilis terbaru untuk meluncurkan klaster bila memungkinkan. Rilis terbaru adalah opsi default jika Anda meluncurkan klaster dari konsol. 

Untuk informasi selengkapnya tentang rilis Amazon EMR dan versi perangkat lunak yang tersedia dengan setiap rilis, buka [Panduan Rilis Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/). Untuk informasi selengkapnya tentang cara mengedit konfigurasi default aplikasi dan perangkat lunak yang diinstal di klaster Anda, buka [Mengonfigurasi aplikasi](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html) di Panduan Rilis Amazon EMR. Beberapa versi komponen ekosistem Hadoop dan Spark sumber terbuka yang disertakan dalam rilis Amazon EMR memiliki patch dan peningkatan, yang mana didokumentasikan dalam [Panduan Rilis Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/).

 Selain perangkat lunak dan aplikasi standar yang tersedia untuk diinstal di klaster, Anda dapat menggunakan tindakan bootstrap untuk menginstal perangkat lunak kustom. Tindakan bootstrap adalah skrip yang berjalan pada instans saat klaster Anda diluncurkan, dan yang berjalan pada simpul baru yang ditambahkan ke klaster Anda saat dibuat. Tindakan bootstrap juga berguna untuk memanggil AWS CLI perintah pada setiap node untuk menyalin objek dari Amazon S3 ke setiap node di cluster Anda. 

**catatan**  
 Tindakan bootstrap digunakan secara berbeda-beda di Amazon EMR rilis 4.x dan yang lebih baru. Untuk informasi lebih lanjut tentang perbedaan ini dari AMI Amazon EMR versi 2.x dan 3.x, buka [Perbedaan yang diperkenalkan di 4.x di ](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-release-differences.html) Panduan Rilis Amazon EMR. 

# Buat tindakan bootstrap untuk menginstal perangkat lunak tambahan dengan cluster EMR Amazon
<a name="emr-plan-bootstrap"></a>

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](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-3x-customizeappconfig.html) Amazon.

## Dasar-dasar tindakan bootstrap
<a name="bootstrapUses"></a>

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://amzn-s3-demo-bucket/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
<a name="emr-bootstrap-runif"></a>

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 nilai`Path`. 

## Tindakan penghentian
<a name="bootstrap_Shutown"></a>

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 primer Amazon EMR cluster menggunakan SSH](emr-connect-master-node-ssh.md).

## Gunakan tindakan bootstrap kustom
<a name="bootstrapCustom"></a>

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 

**Topics**
+ [Tambahkan tindakan bootstrap kustom](#custom-bootstrap)
+ [Gunakan tindakan bootstrap kustom untuk menyalin objek dari Amazon S3 ke setiap simpul](#CustomBootstrapCopyS3Object)

### Tambahkan tindakan bootstrap kustom
<a name="custom-bootstrap"></a>

------
#### [ Console ]

**Untuk membuat cluster dengan aksi bootstrap dengan konsol**

1. [Masuk ke Konsol Manajemen AWS, dan buka konsol EMR Amazon di https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr)

1. **Di bawah **EMR pada EC2** di panel navigasi kiri, pilih Clusters, lalu pilih **Create cluster**.**

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

1. Secara opsional, tambahkan lebih banyak tindakan bootstrap.

1. Pilih opsi lain yang berlaku untuk cluster Anda. 

1. 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 key pair EC2 Anda. Sertakan `--bootstrap-actions` sebagai parameter dan tentukan lokasi skrip bootstrap Anda sebagai nilai`Path`.
  + Pengguna Linux, UNIX, dan Mac OS X:

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

    ```
    1. 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](https://docs.aws.amazon.com/cli/latest/reference/emr)

------

### Gunakan tindakan bootstrap kustom untuk menyalin objek dari Amazon S3 ke setiap simpul
<a name="CustomBootstrapCopyS3Object"></a>

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://amzn-s3-demo-bucket/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.12.0 \
--use-default-roles --ec2-attributes KeyName=myKey \
--applications Name=Hive Name=Pig \
--instance-count 3 --instance-type m5.xlarge \
--bootstrap-actions Path="s3://amzn-s3-demo-bucket/myscriptfolder/copymyfile.sh"
```