Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menjalankan perintah dan skrip di klaster Amazon EMR
Topik ini mencakup cara menjalankan perintah atau skrip sebagai langkah pada klaster Anda. Menjalankan perintah atau skrip sebagai langkah adalah salah satu dari banyak cara yang Anda bisaKirim pekerjaan ke sebuah klasterdan berguna dalam situasi berikut:
-
Bila Anda tidak memiliki akses SSH ke klaster Amazon EMR
-
Bila Anda ingin menjalankan perintah bash atau shell untuk memecahkan masalah klaster
Anda dapat menjalankan script baik ketika Anda membuat cluster atau ketika cluster Anda berada diWAITING
negara. 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 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 Amazon EMR atauAWS CLI.
command-runner.jar
-
Terletak di AMI Amazon EMR untuk klaster Anda. Anda dapat menggunakan
command-runner.jar
untuk menjalankan perintah di klaster Anda. Anda menentukancommand-runner.jar
tanpa menggunakan jalan lengkapnya. script-runner.jar
-
Dihosting di Amazon S3 di
s3://
di mana<region>
.elasticmapreduce/libs/script-runner/script-runner.jar
adalah Wilayah di mana klaster Amazon EMR Anda berada. Anda dapat menggunakan<region>
script-runner.jar
untuk menjalankan skrip yang disimpan secara lokal atau di Amazon S3 di klaster Anda. Anda harus menentukan URI lengkapscript-runner.jar
ketika Anda mengirimkan langkah.
Kirim langkah JAR kustom untuk menjalankan skrip atau perintah
BerikutAWS CLIcontoh menggambarkan beberapa kasus penggunaan umumcommand-runner.jar
danscript-runner.jar
di Amazon EMR.
contoh : Menjalankan perintah pada kluster menggunakancommand-runner.jar
Saat Anda menggunakancommand-runner.jar
, Anda menentukan perintah, opsi, dan nilai dalam daftar argumen langkah Anda.
BerikutAWS CLIcontoh mengirimkan langkah ke klaster berjalan yang memanggilcommand-runner.jar
. Perintah yang ditentukan dalamArgs
daftar download script yang disebutmy-script.sh
dari Amazon S3 ke direktori home pengguna hadoop. Perintah kemudian memodifikasi izin skrip dan berjalanmy-script.sh
.
Saat Anda menggunakanAWS CLI, item dalamArgs
daftar harus dipisahkan koma tanpa spasi antara elemen daftar. Misalnya,Args=[example-command,example-option,"example option value"]
bukanArgs=[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 cps3://EXAMPLE-DOC-BUCKET/my-script.sh
/home/hadoop; chmod u+x /home/hadoop/my-script.sh; cd /home/hadoop; ./my-script.sh"]
contoh : Menjalankan skrip pada klaster menggunakanscript-runner.jar
Saat Anda menggunakanscript-runner.jar
, Anda menentukan skrip yang ingin Anda jalankan dalam daftar argumen langkah Anda.
BerikutAWS CLIcontoh mengirimkan langkah ke klaster berjalan yang memanggilscript-runner.jar
. Dalam hal ini, script disebutmy-script.sh
disimpan di Amazon S3. Anda juga dapat menentukan skrip lokal yang disimpan di simpul utama klaster 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://EXAMPLE-DOC-BUCKET/my-script.sh
]
Cara lain untuk menggunakancommand-runner.jar
Anda juga dapat menggunakancommand-runner.jar
untuk mengirimkan pekerjaan ke klaster dengan alat sepertispark-submit
atauhadoop-streaming
. Saat Anda meluncurkan aplikasi menggunakancommand-runner.jar
, Anda menentukanCUSTOM_JAR
sebagai tipe langkah alih-alih menggunakan nilai sepertiSPARK
,STREAMING
, atauPIG
. Ketersediaan alat bervariasi tergantung pada aplikasi mana yang telah Anda instal di klaster.
Contoh perintah berikut menggunakancommand-runner.jar
untuk mengirimkan langkah menggunakanspark-submit
. ParameterArgs
daftar menentukanspark-submit
sebagai perintah, diikuti oleh Amazon S3 URI dari aplikasi Sparkmy-app.py
dengan argumen dan nilai-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://DOC-EXAMPLE-BUCKET/my-app.py
,ArgName1
,ArgValue1
,ArgName2
,ArgValue2
]
Tabel berikut mengidentifikasi alat tambahan yang dapat Anda jalankan menggunakancommand-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 Pig. Di konsol tersebut dan SDK, ini adalah langkah Pig. |
spark-submit |
Menjalankan aplikasi Spark. Di konsol tersebut, ini adalah langkah Spark. |
hadoop-lzo |
MenjalankanPengindeks Hadoop LZO |
s3-dist-cp |
Mendistribusikan salinan sejumlah besar data dari Amazon S3 ke HDFS. Untuk informasi selengkapnya, lihat S3 DistCp (s3-dist-cp). |