

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:
+ Ketika 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`  
Dihosting di Amazon S3 di `s3://<region>.elasticmapreduce/libs/script-runner/script-runner.jar` mana `<region>` Wilayah tempat klaster EMR Amazon Anda berada. Anda dapat menggunakan `script-runner.jar` untuk menjalankan skrip yang disimpan secara lokal atau di Amazon S3 di klaster Anda. 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 berjalan yang memanggil`script-runner.jar`. Dalam hal ini, skrip yang disebut *my-script.sh* disimpan di Amazon S3. Anda juga dapat menentukan skrip lokal yang disimpan di node master cluster Anda.  

```
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 dan beberapa SDKs, ini adalah langkah streaming. | 
| hive-script | Menjalankan skrip Hive. Di konsol dan SDKs, ini adalah langkah Hive. | 
| pig-script | Menjalankan skrip Babi. Di konsol dan SDKs, ini adalah langkah Babi. | 
| 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). | 