

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

# Jalankan perintah dan skrip di klaster EMR Amazon
<a name="emr-commandrunner"></a>

Topik ini mencakup cara menjalankan perintah atau skrip sebagai langkah di cluster Anda. Menjalankan perintah atau skrip sebagai langkah adalah salah satu dari banyak cara Anda dapat [Kirim pekerjaan ke cluster](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-work-with-steps.html) dan berguna dalam situasi berikut:
+ Bila Anda tidak memiliki akses SSH ke cluster EMR Amazon Anda
+ Saat Anda ingin menjalankan perintah bash atau shell untuk memecahkan masalah cluster Anda

Anda dapat menjalankan skrip baik ketika Anda membuat klaster atau ketika cluster Anda dalam `WAITING` status. Untuk menjalankan skrip sebelum pemrosesan langkah dimulai, Anda menggunakan tindakan bootstrap sebagai gantinya. Untuk informasi lebih lanjut, lihat [Buat tindakan bootstrap untuk menginstal perangkat lunak tambahan](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-bootstrap.html) di *Panduan Pengelolaan Amazon EMR*.

Amazon EMR menyediakan alat berikut untuk membantu Anda menjalankan skrip, perintah, dan program on-cluster lainnya. Anda dapat memanggil kedua alat menggunakan konsol manajemen EMR Amazon atau. AWS CLI

`command-runner.jar`  
Terletak di Amazon EMR AMI untuk cluster Anda. Anda dapat menggunakan `command-runner.jar` untuk menjalankan perintah di cluster Anda. Anda menentukan `command-runner.jar` tanpa menggunakan jalur lengkapnya. 

`script-runner.jar`  
 Anda dapat menggunakan `script-runner.jar` untuk menjalankan skrip yang disimpan secara lokal atau di Amazon S3 di klaster Anda.   
 Untuk Amazon EMR 7.13 dan yang lebih tinggi, toples ini terletak di Amazon EMR AMI untuk cluster Anda. Anda dapat menentukan `script-runner.jar` tanpa menggunakan URI lengkapnya.   
Untuk Amazon EMR 7.12 dan yang lebih rendah, toples ini di-host di Amazon S3 di `s3://{{<region>}}.elasticmapreduce/libs/script-runner/script-runner.jar` mana `{{<region>}}` adalah Wilayah tempat cluster EMR Amazon Anda berada. Anda harus menentukan URI lengkap `script-runner.jar` saat Anda mengirimkan langkah. 

## Kirim langkah JAR khusus untuk menjalankan skrip atau perintah
<a name="emr-commandrunner-examples"></a>

 AWS CLI Contoh berikut menggambarkan beberapa kasus penggunaan umum `command-runner.jar` dan `script-runner.jar` di Amazon EMR.

**Example : Menjalankan perintah pada cluster menggunakan `command-runner.jar`**  
Saat Anda menggunakan`command-runner.jar`, Anda menentukan perintah, opsi, dan nilai dalam daftar argumen langkah Anda.  
 AWS CLI Contoh berikut mengirimkan langkah ke cluster berjalan yang memanggil`command-runner.jar`. Perintah yang ditentukan dalam `Args` daftar mengunduh skrip yang dipanggil {{my-script.sh}} dari Amazon S3 ke direktori home pengguna hadoop. Perintah kemudian memodifikasi izin skrip dan berjalan. {{my-script.sh}}  
Bila Anda menggunakan AWS CLI, item dalam `Args` daftar Anda harus dipisahkan koma tanpa spasi antara elemen daftar. Misalnya, `Args=[example-command,example-option,"example option value"]` bukannya`Args=[example-command, example-option, "example option value"]`.  

```
aws emr add-steps \
--cluster-id {{j-2AXXXXXXGAPLF}} \
--steps Type=CUSTOM_JAR,Name="Download a script from S3 change its permissions and run it",ActionOnFailure=CONTINUE,Jar=command-runner.jar,Args=[bash,-c,"aws s3 cp {{s3://amzn-s3-demo-bucket/my-script.sh}} /home/hadoop; chmod u+x /home/hadoop/my-script.sh; cd /home/hadoop; ./my-script.sh"]
```

**Example : Menjalankan skrip pada cluster menggunakan `script-runner.jar`**  
Saat Anda menggunakan`script-runner.jar`, Anda menentukan skrip yang ingin Anda jalankan dalam daftar argumen langkah Anda.  
 AWS CLI Contoh berikut mengirimkan langkah ke cluster yang sedang berjalan yang memanggil`script-runner.jar`. Skrip yang {{my-script.sh}} disebut disimpan di Amazon S3. Anda juga dapat menentukan skrip lokal yang disimpan di node master cluster Anda.   
 Saat cluster menggunakan Amazon EMR 7.13 atau lebih tinggi, Anda dapat menentukan `script-runner.jar` tanpa menggunakan jalur lengkapnya:   

```
aws emr add-steps \
--cluster-id {{j-2AXXXXXXGAPLF}} \
--steps Type=CUSTOM_JAR,Name="Run a script from S3 with script-runner.jar",ActionOnFailure=CONTINUE,Jar=script-runner.jar,Args=[{{s3://amzn-s3-demo-bucket/my-script.sh}}]
```
 Saat klaster menggunakan Amazon EMR 7.12 atau yang lebih rendah, Anda harus menentukan URI lengkap `script-runner.jar` saat Anda mengirimkan langkah:   

```
aws emr add-steps \
--cluster-id {{j-2AXXXXXXGAPLF}} \
--steps Type=CUSTOM_JAR,Name="Run a script from S3 with script-runner.jar",ActionOnFailure=CONTINUE,Jar=s3://{{us-west-2}}.elasticmapreduce/libs/script-runner/script-runner.jar,Args=[{{s3://amzn-s3-demo-bucket/my-script.sh}}]
```

## Cara lain untuk menggunakan `command-runner.jar`
<a name="emr-commandrunner-other-uses"></a>

Anda juga dapat menggunakan `command-runner.jar` untuk mengirimkan pekerjaan ke cluster dengan alat-alat seperti `spark-submit` atau`hadoop-streaming`. Saat Anda meluncurkan aplikasi menggunakan`command-runner.jar`, Anda menentukan `CUSTOM_JAR` sebagai tipe langkah alih-alih menggunakan nilai seperti`SPARK`,`STREAMING`, atau`PIG`. Ketersediaan alat bervariasi tergantung pada aplikasi mana yang telah Anda instal di cluster.

Contoh perintah berikut digunakan `command-runner.jar` untuk mengirimkan langkah menggunakan`spark-submit`. `Args`Daftar ditentukan `spark-submit` sebagai perintah, diikuti oleh URI Amazon S3 dari {{my-app.py}} aplikasi Spark dengan argumen dan nilai.

```
aws emr add-steps \
--cluster-id {{j-2AXXXXXXGAPLF}} \
--steps Type=CUSTOM_JAR,Name="Run spark-submit using command-runner.jar",ActionOnFailure=CONTINUE,Jar=command-runner.jar,Args=[spark-submit,{{S3://amzn-s3-demo-bucket/my-app.py}},{{ArgName1}},{{ArgValue1}},{{ArgName2}},{{ArgValue2}}]
```

Tabel berikut mengidentifikasi alat tambahan yang dapat Anda jalankan menggunakan`command-runner.jar`.


****  

| Nama alat | Deskripsi | 
| --- | --- | 
| hadoop-streaming | Mengirimkan program streaming Hadoop. Di konsol tersebut dan beberapa SDK, ini adalah langkah streaming. | 
| hive-script | Menjalankan skrip Hive. Di konsol tersebut dan SDK, ini adalah langkah Hive. | 
| pig-script | Menjalankan skrip Babi. Di konsol tersebut dan SDK, ini adalah langkah Pig. | 
| spark-submit | Menjalankan aplikasi Spark. Di konsol tersebut, ini adalah langkah Spark. | 
| hadoop-lzo | Menjalankan [pengindeks Hadoop LZO](https://github.com/kevinweil/hadoop-lzo/blob/master/README.md) pada direktori. | 
| s3-dist-cp | Mendistribusikan salinan sejumlah besar data dari Amazon S3 ke HDFS. Lihat informasi yang lebih lengkap di [S3 DistCp (s3-dist-cp)](UsingEMR_s3distcp.md). | 