Menjalankan perintah dan skrip di klaster Amazon EMR - Amazon EMR

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 diWAITINGnegara. 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 menggunakancommand-runner.jaruntuk menjalankan perintah di klaster Anda. Anda menentukancommand-runner.jartanpa menggunakan jalan lengkapnya.

script-runner.jar

Dihosting di Amazon S3 dis3://<region>.elasticmapreduce/libs/script-runner/script-runner.jardi mana<region>adalah Wilayah di mana klaster Amazon EMR Anda berada. Anda dapat menggunakanscript-runner.jaruntuk menjalankan skrip yang disimpan secara lokal atau di Amazon S3 di klaster Anda. Anda harus menentukan URI lengkapscript-runner.jarketika Anda mengirimkan langkah.

Kirim langkah JAR kustom untuk menjalankan skrip atau perintah

BerikutAWS CLIcontoh menggambarkan beberapa kasus penggunaan umumcommand-runner.jardanscript-runner.jardi 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 dalamArgsdaftar download script yang disebutmy-script.shdari Amazon S3 ke direktori home pengguna hadoop. Perintah kemudian memodifikasi izin skrip dan berjalanmy-script.sh.

Saat Anda menggunakanAWS CLI, item dalamArgsdaftar 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 cp s3://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.shdisimpan 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.jaruntuk mengirimkan pekerjaan ke klaster dengan alat sepertispark-submitatauhadoop-streaming. Saat Anda meluncurkan aplikasi menggunakancommand-runner.jar, Anda menentukanCUSTOM_JARsebagai 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.jaruntuk mengirimkan langkah menggunakanspark-submit. ParameterArgsdaftar menentukanspark-submitsebagai perintah, diikuti oleh Amazon S3 URI dari aplikasi Sparkmy-app.pydengan 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 LZOpada sebuah direktori.
s3-dist-cp Mendistribusikan salinan sejumlah besar data dari Amazon S3 ke HDFS. Untuk informasi selengkapnya, lihat S3 DistCp (s3-dist-cp).