翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
カスタム JAR ステップの送信
カスタム JAR では、Amazon S3 にアップロードできるコンパイル済みの Java プログラムを実行します。起動する Hadoop のバージョンに合わせてプログラムをコンパイルし、Amazon EMR クラスターに CUSTOM_JAR
ステップを送信する必要があります。JAR ファイルのコンパイル方法の詳細については、「Amazon EMR を使用してバイナリを構築する」を参照してください。
Hadoop MapReduce アプリケーションの作成の詳細については、Apache Hadoop ドキュメントの「MapReduce Tutorial
このセクションでは、Amazon EMR でのカスタム JAR ステップの送信の基本情報について説明します。カスタム JAR ステップを送信する場合は、データを処理するスクリプトを Java プログラミング言語で記述できます。
コンソールを使用したカスタム JAR ステップの送信
この例では、Amazon EMR コンソールを使用して、実行中のクラスターにカスタム JAR ステップを送信する方法について説明します。
コンソールを使用してカスタム JAR ステップを送信するには
https://console.aws.amazon.com/emr
で Amazon EMR コンソールを開きます。 -
[Cluster List (クラスターリスト)] で、クラスターの名前を選択します。
-
[Steps (ステップ)] セクションまでスクロールして展開し、[Add step (ステップの追加)] を選択します。
-
[Add Step (ステップの追加)] ダイアログで:
-
[Step type] で、[Custom JAR] を選択します。
-
[Name] では、デフォルト名(Custom JAR)を使用するか、または新しい名前を入力します。
-
[JAR S3 location] では、JAR ファイルの場所を入力または参照します。JAR の場所は、S3 へのパスまたはクラスパス内の完全修飾 Java クラスです。
-
[Arguments (引数)] では、必要な引数をスペース区切りの文字列として入力するか、フィールドを空のままにします。
-
[Action on failure (失敗時の操作)] では、デフォルトのオプション ([Continue (続行)]) を使用します。
-
-
[追加] を選択します。ステップは、[Pending] というステータスでコンソールに表示されます。
-
ステップが実行されると、ステータスは [Pending (保留中)] から [Running (実行中)]、[Running (実行中)] から [完了済み] に変更されます。ステータスを更新するには、[Actions] 列の上にある [Refresh] アイコンを選択します。
を使用してクラスターを起動し、カスタム JAR ステップを送信する AWS CLI
を使用してクラスターを起動し、カスタム JAR ステップを送信するには AWS CLI
クラスターを起動し、 を使用してカスタム JAR ステップを送信するには AWS CLI、 --steps
パラメータで create-cluster
サブコマンドを入力します。
-
クラスターを起動し、カスタム JAR ステップを送信するには、次のコマンドを入力して
myKey
を EC2 キーペア名に置き換え、amzn-s3-demo-bucket
をバケット名に置き換えます。aws emr create-cluster --name "
Test cluster
" --release-labelemr-7.6.0
\ --applications Name=Hue
Name=Hive
Name=Pig
--use-default-roles \ --ec2-attributes KeyName=myKey
--instance-typem5.xlarge
--instance-count3
\ --steps Type=CUSTOM_JAR
,Name="Custom JAR Step
",ActionOnFailure=CONTINUE
,Jar=pathtojarfile
,Args=["pathtoinputdata
","pathtooutputbucket
","arg1
","arg2
"]注記
読みやすくするために、Linux 行連続文字 (\) が含まれています。Linux コマンドでは、これらは削除することも、使用することもできます。Windows の場合、削除するか、キャレット (^) に置き換えてください。
--instance-groups
パラメータを使用せずにインスタンス数を指定すると、1 つのプライマリノードが起動され、残りのインスタンスはコアノードとして起動されます。すべてのノードで、コマンドで指定したインスタンスタイプが使用されます。注記
以前にデフォルトの Amazon EMR サービスロールと EC2 インスタンスプロファイルを作成していない場合は、「
aws emr create-default-roles
」と入力してそれらを作成してから、create-cluster
サブコマンドを入力します。での Amazon EMR コマンドの使用の詳細については AWS CLI、「」を参照してくださいhttps://docs.aws.amazon.com/cli/latest/reference/emr。
サードパーティーへの依存関係
プログラムで使用するための JAR を MapReduce クラスパスに含める必要が生じる場合があります。これを行うための 2 つのオプションがあります。
-
「
--libjars s3://
」の手順で、ステップオプションに を使用してクラスターを起動し、カスタム JAR ステップを送信する AWS CLI を含めます。URI_to_JAR
-
mapred-site.xml
でmapreduce.application.classpath
設定を変更して、クラスターを起動します。mapred-site
設定分類を使用します。を使用して ステップでクラスターを作成するには AWS CLI、次のようになります。aws emr create-cluster --release-label
emr-7.6.0
\ --applications Name=Hue
Name=Hive
Name=Pig
--use-default-roles \ --instance-type m5.xlarge --instance-count 2 --ec2-attributes KeyName=myKey
\ --steps Type=CUSTOM_JAR
,Name="Custom JAR Step
",ActionOnFailure=CONTINUE
,Jar=pathtojarfile
,Args=["pathtoinputdata
","pathtooutputbucket
","arg1
","arg2
"] \ --configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.jsonmyConfig.json
:[ { "Classification": "mapred-site", "Properties": { "mapreduce.application.classpath": "
path1
,path2
" } } ]パスのカンマ区切りリストを、各タスクの JVM クラスパスに付加する必要があります。