翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
カスタムJARステップを送信する
カスタム は、Amazon S3 にアップロードできるコンパイル済み Java プログラムJARを実行します。起動する Hadoop のバージョンに対してプログラムをコンパイルし、Amazon EMRクラスターにCUSTOM_JAR
ステップを送信する必要があります。JAR ファイルのコンパイル方法の詳細については、「」を参照してくださいAmazon EMR を使用してバイナリを構築する。
Hadoop MapReduce アプリケーションの構築の詳細については、Apache Hadoop ドキュメントのMapReduce チュートリアル
このセクションでは、Amazon でカスタムJARステップを送信する基本について説明しますEMR。カスタムJARステップを送信すると、Java プログラミング言語でデータを処理するためのスクリプトを作成できます。
コンソールでカスタムJARステップを送信する
この例では、Amazon EMRコンソールを使用して、実行中のクラスターにカスタムJARステップを送信する方法について説明します。
コンソールでカスタムJARステップを送信するには
https://console.aws.amazon.com/emr
で Amazon EMRコンソールを開きます。 -
[Cluster List (クラスターリスト)] で、クラスターの名前を選択します。
-
[Steps (ステップ)] セクションまでスクロールして展開し、[Add step (ステップの追加)] を選択します。
-
[Add Step (ステップの追加)] ダイアログで:
-
ステップタイプ で、カスタム JARを選択します。
-
名前 には、デフォルトの名前 (カスタム JAR) を使用するか、新しい名前を入力します。
-
JAR S3 の場所 には、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キーペアの名前に置き換え、mybucket
をバケット名で使用します。aws emr create-cluster --name "
Test cluster
" --release-labelemr-7.2.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インスタンスプロファイルを以前に作成していない場合は、
create-cluster
サブコマンドを入力する前にaws emr create-default-roles
と入力して作成します。での Amazon EMR コマンドの使用の詳細については、 AWS CLI「」を参照してくださいhttps://docs.aws.amazon.com/cli/latest/reference/emr。
サードパーティーへの依存関係
プログラムJARsで使用するクラス 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.2.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/mybucket/myfolder/myConfig.jsonmyConfig.json
:[ { "Classification": "mapred-site", "Properties": { "mapreduce.application.classpath": "
path1
,path2
" } } ]パスのカンマ区切りリストは、各タスクのJVMクラスパスに追加する必要があります。