翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
を使用した Amazon EMR の例 AWS CLI
次のコード例は、Amazon AWS Command Line Interface で を使用してアクションを実行し、一般的なシナリオを実装する方法を示していますEMR。
アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。
各例には、完全なソースコードへのリンクが含まれています。ここでは、コンテキストでコードを設定および実行する方法の手順を確認できます。
トピック
アクション
次の例は、add-instance-fleet
を使用する方法を説明しています。
- AWS CLI
-
タスクインスタンスフリートをクラスターに追加するには
この例では、指定されたクラスターに新しいタスクインスタンスフリートを追加します。
コマンド:
aws emr add-instance-fleet --cluster-id '
j-12ABCDEFGHI34JK
' --instance-fleet InstanceFleetType=TASK,TargetSpotCapacity=1,LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=20,TimeoutAction=TERMINATE_CLUSTER}'},InstanceTypeConfigs=['{InstanceType=m3.xlarge,BidPrice=0.5}']出力:
{ "ClusterId": "j-12ABCDEFGHI34JK", "InstanceFleetId": "if-23ABCDEFGHI45JJ" }
-
API 詳細については、AWS CLI 「 コマンドリファレンスAddInstanceFleet
」の「」を参照してください。
-
次のコード例は、add-steps
を使用する方法を示しています。
- AWS CLI
-
1. クラスターにカスタムJARステップを追加するには
コマンド:
aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://mybucket/mytest.jar,Args=arg1,arg2,arg3 Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://mybucket/mytest.jar,MainClass=mymainclass,Args=arg1,arg2,arg3
必要なパラメータ:
Jar
任意指定のパラメータ:
Type, Name, ActionOnFailure, Args
出力:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
2. ストリーミングステップをクラスターに追加するには
コマンド:
aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=STREAMING,Name='Streaming Program',ActionOnFailure=CONTINUE,Args=[-files,s3://elasticmapreduce/samples/wordcount/wordSplitter.py,-mapper,wordSplitter.py,-reducer,aggregate,-input,s3://elasticmapreduce/samples/wordcount/input,-output,s3://mybucket/wordcount/output]
必要なパラメータ:
Type, Args
任意指定のパラメータ:
Name, ActionOnFailure
JSON 同等 (Step.json の内容):
[ { "Name": "JSON Streaming Step", "Args": ["-files","s3://elasticmapreduce/samples/wordcount/wordSplitter.py","-mapper","wordSplitter.py","-reducer","aggregate","-input","s3://elasticmapreduce/samples/wordcount/input","-output","s3://mybucket/wordcount/output"], "ActionOnFailure": "CONTINUE", "Type": "STREAMING" } ]
NOTE: JSON引数には、リスト内の独自の項目としてオプションと値を含める必要があります。
コマンド (step.json を使用):
aws emr add-steps --cluster-id j-XXXXXXXX --steps file://./step.json
出力:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
3. 複数のファイルを含むストリーミングステップをクラスターに追加するには (JSON のみ)
JSON (multiplefiles.json):
[ { "Name": "JSON Streaming Step", "Type": "STREAMING", "ActionOnFailure": "CONTINUE", "Args": [ "-files", "s3://mybucket/mapper.py,s3://mybucket/reducer.py", "-mapper", "mapper.py", "-reducer", "reducer.py", "-input", "s3://mybucket/input", "-output", "s3://mybucket/output"] } ]
コマンド:
aws emr add-steps --cluster-id j-XXXXXXXX --steps file://./multiplefiles.json
必要なパラメータ:
Type, Args
任意指定のパラメータ:
Name, ActionOnFailure
出力:
{ "StepIds":[ "s-XXXXXXXX", ] }
4. クラスターに Hive ステップを追加するには
コマンド:
aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=HIVE,Name='Hive program',ActionOnFailure=CONTINUE,Args=[-f,s3://mybucket/myhivescript.q,-d,INPUT=s3://mybucket/myhiveinput,-d,OUTPUT=s3://mybucket/myhiveoutput,arg1,arg2] Type=HIVE,Name='Hive steps',ActionOnFailure=TERMINATE_CLUSTER,Args=[-f,s3://elasticmapreduce/samples/hive-ads/libs/model-build.q,-d,INPUT=s3://elasticmapreduce/samples/hive-ads/tables,-d,OUTPUT=s3://mybucket/hive-ads/output/2014-04-18/11-07-32,-d,LIBS=s3://elasticmapreduce/samples/hive-ads/libs]
必要なパラメータ:
Type, Args
任意指定のパラメータ:
Name, ActionOnFailure
出力:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
5. クラスターに Pig ステップを追加するには
コマンド:
aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=PIG,Name='Pig program',ActionOnFailure=CONTINUE,Args=[-f,s3://mybucket/mypigscript.pig,-p,INPUT=s3://mybucket/mypiginput,-p,OUTPUT=s3://mybucket/mypigoutput,arg1,arg2] Type=PIG,Name='Pig program',Args=[-f,s3://elasticmapreduce/samples/pig-apache/do-reports2.pig,-p,INPUT=s3://elasticmapreduce/samples/pig-apache/input,-p,OUTPUT=s3://mybucket/pig-apache/output,arg1,arg2]
必要なパラメータ:
Type, Args
任意指定のパラメータ:
Name, ActionOnFailure
出力:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
6. Impala ステップをクラスターに追加するには
コマンド:
aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=IMPALA,Name='Impala program',ActionOnFailure=CONTINUE,Args=--impala-script,s3://myimpala/input,--console-output-path,s3://myimpala/output
必要なパラメータ:
Type, Args
任意指定のパラメータ:
Name, ActionOnFailure
出力:
{ "StepIds":[ "s-XXXXXXXX", "s-YYYYYYYY" ] }
-
API 詳細については、AWS CLI 「 コマンドリファレンスAddSteps
」の「」を参照してください。
-
次の例は、add-tags
を使用する方法を説明しています。
- AWS CLI
-
1. クラスターにタグを追加するには
コマンド:
aws emr add-tags --resource-id j-xxxxxxx --tags name="John Doe" age=29 sex=male address="123 East NW Seattle"
出力:
None
2. クラスターのタグを一覧表示するには
-- コマンド:
aws emr describe-cluster --cluster-id
j-XXXXXXYY
--queryCluster.Tags
出力:
[ { "Value": "male", "Key": "sex" }, { "Value": "123 East NW Seattle", "Key": "address" }, { "Value": "John Doe", "Key": "name" }, { "Value": "29", "Key": "age" } ]
-
API 詳細については、AWS CLI 「 コマンドリファレンスAddTags
」の「」を参照してください。
-
次のコード例は、create-cluster-examples
を使用する方法を示しています。
- AWS CLI
-
以下の例のほとんどは、Amazon EMRサービスロールと Amazon EC2インスタンスプロファイルを指定していることを前提としています。これを行っていない場合は、必要な各IAMロールを指定するか、クラスターの作成時に
--use-default-roles
パラメータを使用する必要があります。IAM ロールの指定の詳細については、「Amazon 管理ガイド」の AWS 「サービスに対する Amazon EMR アクセス許可のIAMロールの設定」を参照してください。 EMR例 1: クラスターを作成するには
次の
create-cluster
例では、シンプルなEMRクラスターを作成します。aws emr create-cluster \ --release-label
emr-5.14.0
\ --instance-typem4.large
\ --instance-count2
このコマンドでは何も出力されません。
例 2: デフォルト ServiceRole と InstanceProfile ロールを使用して Amazon EMRクラスターを作成するには
次の
create-cluster
例では、--instance-groups
設定を使用する Amazon EMRクラスターを作成します。aws emr create-cluster \ --release-label
emr-5.14.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
例 3: インスタンスフリートを使用する Amazon EMRクラスターを作成するには
次の
create-cluster
例では、--instance-fleets
設定を使用する Amazon EMRクラスターを作成し、フリートごとに 2 つのインスタンスタイプと 2 つのEC2サブネットを指定します。aws emr create-cluster \ --release-label
emr-5.14.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m4.large}'] InstanceFleetType=CORE,TargetSpotCapacity=11,InstanceTypeConfigs=['{InstanceType=m4.large,BidPrice=0.5,WeightedCapacity=3}','{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'}例 4: デフォルトロールを使用してクラスターを作成するには
次の
create-cluster
例では、--use-default-roles
パラメータを使用して、デフォルトのサービスロールとインスタンスプロファイルを指定します。aws emr create-cluster \ --release-label
emr-5.9.0
\ --use-default-roles \ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminate例 5: クラスターを作成し、インストールするアプリケーションを指定するには
次の
create-cluster
例では、--applications
パラメータを使用して、Amazon がEMRインストールするアプリケーションを指定します。この例では、Hadoop、Hive、Pig をインストールします。aws emr create-cluster \ --applications
Name=Hadoop
Name=Hive
Name=Pig
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminate例 6: Spark を含むクラスターを作成するには
次の例では、Spark をインストールします。
aws emr create-cluster \ --release-label
emr-5.9.0
\ --applicationsName=Spark
\ --ec2-attributesKeyName=myKey
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminate例 7: クラスターインスタンスAMIに使用するカスタムを指定するには
次の
create-cluster
例では、ID AMIを持つ Amazon Linux に基づいてクラスターインスタンスを作成しますami-a518e6df
。aws emr create-cluster \ --name
"Cluster with My Custom AMI"
\ --custom-ami-idami-a518e6df
\ --ebs-root-volume-size20
\ --release-labelemr-5.9.0
\ --use-default-roles \ --instance-count2
\ --instance-typem4.large
例 8: アプリケーション設定をカスタマイズするには
次の例では、
--configurations
パラメータを使用して、Hadoop のアプリケーションのカスタマイズを含むJSON設定ファイルを指定します。詳細については、「Amazon リリースガイド」の「アプリケーションの設定」を参照してください。 EMRconfigurations.json
の内容:[ { "Classification": "mapred-site", "Properties": { "mapred.tasktracker.map.tasks.maximum": 2 } }, { "Classification": "hadoop-env", "Properties": {}, "Configurations": [ { "Classification": "export", "Properties": { "HADOOP_DATANODE_HEAPSIZE": 2048, "HADOOP_NAMENODE_OPTS": "-XX:GCTimeRatio=19" } } ] } ]
次の例では、 をローカルファイル
configurations.json
として参照しています。aws emr create-cluster \ --configurations
file://configurations.json
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminate次の例では、Amazon S3 で をファイル
configurations.json
として参照しています。aws emr create-cluster \ --configurations
https://s3.amazonaws.com/myBucket/configurations.json
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminate例 9: マスターインスタンスグループ、コアインスタンスグループ、タスクインスタンスグループを使用してクラスターを作成するには
次の
create-cluster
例では、--instance-groups
を使用して、マスターEC2、コア、タスクインスタンスグループに使用するインスタンスのタイプと数を指定します。aws emr create-cluster \ --release-label
emr-5.9.0
\ --instance-groupsName=Master,InstanceGroupType=MASTER,InstanceType=m4.large,InstanceCount=1
Name=Core,InstanceGroupType=CORE,InstanceType=m4.large,InstanceCount=2
Name=Task,InstanceGroupType=TASK,InstanceType=m4.large,InstanceCount=2
例 10: すべてのステップを完了した後にクラスターを終了するように指定するには
次の
create-cluster
例では--auto-terminate
、 を使用して、すべてのステップを完了した後にクラスターを自動的にシャットダウンするように指定します。aws emr create-cluster \ --release-label
emr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminate例 11: Amazon EC2キーペア、ネットワーク設定、セキュリティグループなどのクラスター設定の詳細を指定するには
次の
create-cluster
例では、 という名前の Amazon EC2キーペアmyKey
と という名前のカスタマイズされたインスタンスプロファイルを持つクラスターを作成しますmyProfile
。キーペアは、クラスターノード、ほとんどの場合マスターノードSSHへの接続を承認するために使用します。詳細については、「Amazon 管理ガイド」のSSH「認証情報に Amazon EC2キーペアを使用する」を参照してください。 EMRaws emr create-cluster \ --ec2-attributes
KeyName=myKey,InstanceProfile=myProfile
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminate次の例では、Amazon VPCサブネットにクラスターを作成します。
aws emr create-cluster \ --ec2-attributes
SubnetId=subnet-xxxxx
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminate次の例では、
us-east-1b
アベイラビリティーゾーンにクラスターを作成します。aws emr create-cluster \ --ec2-attributes
AvailabilityZone=us-east-1b
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
次の例では、クラスターを作成し、Amazon EMRが管理するセキュリティグループのみを指定します。
aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-rolemyServiceRole
\ --ec2-attributesInstanceProfile=myRole,EmrManagedMasterSecurityGroup=sg-master1,EmrManagedSlaveSecurityGroup=sg-slave1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
次の例では、クラスターを作成し、追加の Amazon EC2 セキュリティグループのみを指定します。
aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-rolemyServiceRole
\ --ec2-attributesInstanceProfile=myRole,AdditionalMasterSecurityGroups=[sg-addMaster1,sg-addMaster2,sg-addMaster3,sg-addMaster4],AdditionalSlaveSecurityGroups=[sg-addSlave1,sg-addSlave2,sg-addSlave3,sg-addSlave4]
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
次の例では、クラスターを作成し、 EMRマネージドセキュリティグループと追加のセキュリティグループを指定します。
aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-rolemyServiceRole
\ --ec2-attributesInstanceProfile=myRole,EmrManagedMasterSecurityGroup=sg-master1,EmrManagedSlaveSecurityGroup=sg-slave1,AdditionalMasterSecurityGroups=[sg-addMaster1,sg-addMaster2,sg-addMaster3,sg-addMaster4],AdditionalSlaveSecurityGroups=[sg-addSlave1,sg-addSlave2,sg-addSlave3,sg-addSlave4]
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
次の例では、VPCプライベートサブネットにクラスターを作成し、特定の Amazon EC2 セキュリティグループを使用して Amazon EMRサービスアクセスを有効にします。これは、プライベートサブネットのクラスターに必要です。
aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-rolemyServiceRole
\ --ec2-attributesInstanceProfile=myRole,ServiceAccessSecurityGroup=sg-service-access,EmrManagedMasterSecurityGroup=sg-master,EmrManagedSlaveSecurityGroup=sg-slave
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
次の例では、ローカルに保存
ec2_attributes.json
されている という名前のJSONファイルを使用して、セキュリティグループ設定パラメータを指定します。NOTE: JSON引数には、リスト内の独自の項目としてオプションと値を含める必要があります。aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-rolemyServiceRole
\ --ec2-attributesfile://ec2_attributes.json
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
ec2_attributes.json
の内容:[ { "SubnetId": "subnet-xxxxx", "KeyName": "myKey", "InstanceProfile":"myRole", "EmrManagedMasterSecurityGroup": "sg-master1", "EmrManagedSlaveSecurityGroup": "sg-slave1", "ServiceAccessSecurityGroup": "sg-service-access", "AdditionalMasterSecurityGroups": ["sg-addMaster1","sg-addMaster2","sg-addMaster3","sg-addMaster4"], "AdditionalSlaveSecurityGroups": ["sg-addSlave1","sg-addSlave2","sg-addSlave3","sg-addSlave4"] } ]
例 12: デバッグを有効にしてログを指定するには URI
次の
create-cluster
例では、--enable-debugging
パラメータを使用しており、Amazon EMRコンソールのデバッグツールを使用してログファイルをより簡単に表示できます。--log-uri
パラメータは で必要です--enable-debugging
。aws emr create-cluster \ --enable-debugging \ --log-uri
s3://myBucket/myLog
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminate例 13: クラスターの作成時にタグを追加するには
タグは、クラスターの特定と管理に役立つキーと値のペアです。次の
create-cluster
例では、--tags
パラメータを使用してクラスターに 3 つのタグを作成します。1 つはキー名name
と値Shirley Rodriguez
、もう 1 つはキー名age
と値29
、3 つ目のタグはキー名department
と値 ですAnalytics
。aws emr create-cluster \ --tags name="Shirley Rodriguez"
age=29
department="Analytics" \ --release-labelemr-5.32.0
\ --instance-typem5.xlarge
\ --instance-count3
\ --use-default-roles次の例では、クラスターに適用されるタグを一覧表示します。
aws emr describe-cluster \ --cluster-id
j-XXXXXXYY
\ --queryCluster.Tags
例 14: 暗号化やその他のセキュリティ機能を有効にするセキュリティ設定を使用するには
次の
create-cluster
例では、--security-configuration
パラメータを使用してEMRクラスターのセキュリティ設定を指定します。Amazon EMRバージョン 4.8.0 以降では、セキュリティ設定を使用できます。aws emr create-cluster \ --instance-type
m4.large
\ --release-labelemr-5.9.0
\ --security-configurationmySecurityConfiguration
例 15: インスタンスグループ用に追加のEBSストレージボリュームが設定されたクラスターを作成するには
追加のEBSボリュームを指定する場合は、次の引数が必要です。
VolumeType
EbsBlockDeviceConfigs
が指定されSizeInGB
ている場合。次の
create-cluster
例では、コアインスタンスグループのEC2インスタンスに複数のEBSボリュームがアタッチされたクラスターを作成します。aws emr create-cluster \ --release-label
emr-5.9.0
\ --use-default-roles \ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=d2.xlarge
'InstanceGroupType=CORE,InstanceCount=2,InstanceType=d2.xlarge,EbsConfiguration={EbsOptimized=true,EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=gp2,SizeInGB=100}},{VolumeSpecification={VolumeType=io1,SizeInGB=100,Iops=100},VolumesPerInstance=4}]}
' \ --auto-terminate次の例では、マスターインスタンスグループのEC2インスタンスに複数のEBSボリュームがアタッチされたクラスターを作成します。
aws emr create-cluster \ --release-label
emr-5.9.0
\ --use-default-roles \ --instance-groups 'InstanceGroupType=MASTER, InstanceCount=1, InstanceType=d2.xlarge, EbsConfiguration={EbsOptimized=true, EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=io1, SizeInGB=100, Iops=100}},{VolumeSpecification={VolumeType=standard,SizeInGB=50},VolumesPerInstance=3}]}
'InstanceGroupType=CORE,InstanceCount=2,InstanceType=d2.xlarge
\ --auto-terminate例 16: 自動スケーリングポリシーを使用してクラスターを作成するには
Amazon EMRバージョン 4.0 以降を使用して、コアインスタンスグループとタスクインスタンスグループに自動スケーリングポリシーをアタッチできます。自動スケーリングポリシーは、Amazon CloudWatch メトリクスに応答してEC2インスタンスを動的に追加および削除します。詳細については、「Amazon EMR管理ガイド」の「Amazon EMR <https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-automatic-scaling.html>`_ で自動スケーリングを使用する」を参照してください。
自動スケーリングポリシーをアタッチする場合は、 を使用して自動スケーリングのデフォルトロールを指定する必要があります
--auto-scaling-role EMR_AutoScaling_DefaultRole
。次の
create-cluster
例では、スケーリングポリシー設定を指定する埋め込みJSON構造を持つAutoScalingPolicy
引数を使用して、CORE
インスタンスグループの自動スケーリングポリシーを指定します。JSON 構造が埋め込まれたインスタンスグループには、引数のコレクション全体が一重引用符で囲まれている必要があります。単一引用符の使用は、JSON構造が埋め込まれていないインスタンスグループではオプションです。aws emr create-cluster --release-label
emr-5.9.0
\ --use-default-roles --auto-scaling-roleEMR_AutoScaling_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceType=d2.xlarge,InstanceCount=1
'InstanceGroupType=CORE,InstanceType=d2.xlarge,InstanceCount=2,AutoScalingPolicy={Constraints={MinCapacity=1,MaxCapacity=5},Rules=[{Name=TestRule,Description=TestDescription,Action={Market=ON_DEMAND,SimpleScalingPolicyConfiguration={AdjustmentType=EXACT_CAPACITY,ScalingAdjustment=2}},Trigger={CloudWatchAlarmDefinition={ComparisonOperator=GREATER_THAN,EvaluationPeriods=5,MetricName=TestMetric,Namespace=EMR,Period=3,Statistic=MAXIMUM,Threshold=4.5,Unit=NONE,Dimensions=[{Key=TestKey,Value=TestValue}]}}}]}
'次の例では、 JSON ファイル を使用して
instancegroupconfig.json
、クラスター内のすべてのインスタンスグループの設定を指定します。JSON ファイルは、コアインスタンスグループの自動スケーリングポリシー設定を指定します。aws emr create-cluster \ --release-label
emr-5.9.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsfile://myfolder/instancegroupconfig.json
\ --auto-scaling-roleEMR_AutoScaling_DefaultRole
instancegroupconfig.json
の内容:[ { "InstanceCount": 1, "Name": "MyMasterIG", "InstanceGroupType": "MASTER", "InstanceType": "m4.large" }, { "InstanceCount": 2, "Name": "MyCoreIG", "InstanceGroupType": "CORE", "InstanceType": "m4.large", "AutoScalingPolicy": { "Constraints": { "MinCapacity": 2, "MaxCapacity": 10 }, "Rules": [ { "Name": "Default-scale-out", "Description": "Replicates the default scale-out rule in the console for YARN memory.", "Action": { "SimpleScalingPolicyConfiguration": { "AdjustmentType": "CHANGE_IN_CAPACITY", "ScalingAdjustment": 1, "CoolDown": 300 } }, "Trigger": { "CloudWatchAlarmDefinition": { "ComparisonOperator": "LESS_THAN", "EvaluationPeriods": 1, "MetricName": "YARNMemoryAvailablePercentage", "Namespace": "AWS/ElasticMapReduce", "Period": 300, "Threshold": 15, "Statistic": "AVERAGE", "Unit": "PERCENT", "Dimensions": [ { "Key": "JobFlowId", "Value": "${emr.clusterId}" } ] } } } ] } } ]
例 17: クラスターを作成するときにカスタムJARステップを追加する
次の
create-cluster
例では、Amazon S3 に保存されているJARファイルを指定してステップを追加します。ステップは、クラスターに作業を送信します。JAR ファイルで定義されたメイン関数は、EC2インスタンスがプロビジョニングされ、ブートストラップアクションが実行され、アプリケーションがインストールされた後に実行されます。ステップは を使用して指定しますType=CUSTOM_JAR
。カスタムJARステップには、
Jar=
パラメータが必要です。パラメータは、 のパスとファイル名を指定しますJAR。オプションのパラメータは、Type
、Name
、Args
、ActionOnFailure
、および ですMainClass
。メインクラスが指定されていない場合、JARファイルはマニフェストファイルMain-Class
で を指定する必要があります。aws emr create-cluster \ --steps
Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://myBucket/mytest.jar,Args=arg1,arg2,arg3
Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://myBucket/mytest.jar,MainClass=mymainclass,Args=arg1,arg2,arg3
\ --release-labelemr-5.3.1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminate例 18: クラスターの作成時にストリーミングステップを追加するには
次の
create-cluster
例では、すべてのステップの実行後に終了するストリーミングステップをクラスターに追加します。ストリーミングステップにはパラメータType
と が必要ですArgs
。ストリーミングステップのオプションパラメータはName
および ですActionOnFailure
。次の例では、ステップをインラインで指定します。
aws emr create-cluster \ --steps Type=STREAMING,Name='Streaming Program',ActionOnFailure=CONTINUE,Args=[-files,s3://elasticmapreduce/samples/wordcount/wordSplitter.py,-mapper,wordSplitter.py,-reducer,aggregate,-input,s3://elasticmapreduce/samples/wordcount/input,-output,s3://mybucket/wordcount/output] \ --release-label
emr-5.3.1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminate次の例では、 という名前のローカルに保存されたJSON設定ファイルを使用します
multiplefiles.json
。JSON 設定では、複数のファイルを指定します。ステップ内で複数のファイルを指定するには、JSON設定ファイルを使用してステップを指定する必要があります。JSON 引数には、リスト内の独自の項目としてオプションと値を含める必要があります。aws emr create-cluster \ --steps
file://./multiplefiles.json
\ --release-labelemr-5.9.0
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminatemultiplefiles.json
の内容:[ { "Name": "JSON Streaming Step", "Args": [ "-files", "s3://elasticmapreduce/samples/wordcount/wordSplitter.py", "-mapper", "wordSplitter.py", "-reducer", "aggregate", "-input", "s3://elasticmapreduce/samples/wordcount/input", "-output", "s3://mybucket/wordcount/output" ], "ActionOnFailure": "CONTINUE", "Type": "STREAMING" } ]
例 19: クラスターの作成時に Hive ステップを追加するには
次の例では、クラスターを作成するときに Hive ステップを追加します。Hive ステップには、 パラメータ
Type
と が必要ですArgs
。Hive ステップのオプションパラメータはName
および ですActionOnFailure
。aws emr create-cluster \ --steps Type=HIVE,Name='Hive program',ActionOnFailure=CONTINUE,ActionOnFailure=TERMINATE_CLUSTER,Args=[-f,s3://elasticmapreduce/samples/hive-ads/libs/model-build.q,-d,INPUT=s3://elasticmapreduce/samples/hive-ads/tables,-d,OUTPUT=s3://mybucket/hive-ads/output/2014-04-18/11-07-32,-d,LIBS=s3://elasticmapreduce/samples/hive-ads/libs] \ --applications
Name=Hive
\ --release-labelemr-5.3.1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
例 20: クラスターの作成時に Pig ステップを追加するには
次の例では、クラスターを作成するときに Pig ステップを追加します。豚ステップに必要なパラメータは
Type
と ですArgs
。豚ステップのオプションパラメータはName
および ですActionOnFailure
。aws emr create-cluster \ --steps Type=PIG,Name='Pig program',ActionOnFailure=CONTINUE,Args=[-f,s3://elasticmapreduce/samples/pig-apache/do-reports2.pig,-p,INPUT=s3://elasticmapreduce/samples/pig-apache/input,-p,OUTPUT=s3://mybucket/pig-apache/output] \ --applications
Name=Pig
\ --release-labelemr-5.3.1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
例 21: ブートストラップアクションを追加するには
次の
create-cluster
例では、Amazon S3 に保存されているスクリプトとして定義された 2 つのブートストラップアクションを実行します。aws emr create-cluster \ --bootstrap-actions
Path=s3://mybucket/myscript1,Name=BootstrapAction1,Args=[arg1,arg2]
Path=s3://mybucket/myscript2,Name=BootstrapAction2,Args=[arg1,arg2]
\ --release-labelemr-5.3.1
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
\ --auto-terminate例 22: EMRFS一貫した表示を有効にし、 RetryCount と RetryPeriod の設定をカスタマイズするには
次の
create-cluster
例では、EMRFS一貫したビューの再試行回数と再試行期間を指定します。Consistent=true
引数が必要です。aws emr create-cluster \ --instance-type
m4.large
\ --release-labelemr-5.9.0
\ --emrfsConsistent=true,RetryCount=6,RetryPeriod=30
次の例では、 という名前のローカルに保存されたEMRFS設定ファイルを使用して、前の例と同じJSON設定を指定します
emrfsconfig.json
。aws emr create-cluster \ --instance-type
m4.large
\ --release-labelemr-5.9.0
\ --emrfsfile://emrfsconfig.json
emrfsconfig.json
の内容:{ "Consistent": true, "RetryCount": 6, "RetryPeriod": 30 }
例 23: Kerberos が設定されたクラスターを作成するには
次の
create-cluster
例では、Kerberos を有効にしたセキュリティ設定を使用してクラスターを作成し、 を使用してクラスターの Kerberos パラメータを確立します--kerberos-attributes
。次のコマンドは、クラスターの Kerberos 属性をインラインで指定します。
aws emr create-cluster \ --instance-type
m3.xlarge
\ --release-labelemr-5.10.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --security-configurationmySecurityConfiguration
\ --kerberos-attributesRealm=EC2.INTERNAL,KdcAdminPassword=123,CrossRealmTrustPrincipalPassword=123
次のコマンドは同じ属性を指定しますが、 という名前のローカルに保存されたJSONファイルを参照します
kerberos_attributes.json
。この例では、 ファイルは コマンドを実行するのと同じディレクトリに保存されます。Amazon S3 に保存されている設定ファイルを参照することもできます。aws emr create-cluster \ --instance-type
m3.xlarge
\ --release-labelemr-5.10.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --security-configurationmySecurityConfiguration
\ --kerberos-attributesfile://kerberos_attributes.json
kerberos_attributes.json
の内容:{ "Realm": "EC2.INTERNAL", "KdcAdminPassword": "123", "CrossRealmTrustPrincipalPassword": "123", }
次の
create-cluster
例では、--instance-groups
設定を使用し、マネージドスケーリングポリシーを持つ Amazon EMRクラスターを作成します。aws emr create-cluster \ --release-label
emr-5.30.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
--managed-scaling-policy ComputeLimits='{MinimumCapacityUnits=2,MaximumCapacityUnits=4,UnitType=Instances}'次の
create-cluster
例では、「-log-encryption-kms-key-id」を使用してログ暗号化に使用されるKMSキー ID を定義する Amazon EMRクラスターを作成します。aws emr create-cluster \ --release-label
emr-5.30.0
\ --log-uris3://myBucket/myLog
\ --log-encryption-kms-key-idarn:aws:kms:us-east-1:110302272565:key/dd559181-283e-45d7-99d1-66da348c4d33
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large
次の
create-cluster
例では、「-placement-group-configs」設定を使用して、SPREAD
プレイスメント戦略を使用してEC2プレイスメントグループ内の高可用性 (HA) クラスターにマスターノードを配置EMRする Amazon クラスターを作成します。aws emr create-cluster \ --release-label
emr-5.30.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=3,InstanceType=m4.largeInstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large
\ --placement-group-configsInstanceRole=MASTER
次の
create-cluster
例では、「-auto-termination-policy」設定を使用してEMRクラスターの自動アイドル終了しきい値を配置する Amazon クラスターを作成します。aws emr create-cluster \ --release-label
emr-5.34.0
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large
\ --auto-termination-policyIdleTimeout=100
次の
create-cluster
例では、「--os-release-label」を使用してEMRクラスター起動用の Amazon Linux リリースを定義する Amazon クラスターを作成します。aws emr create-cluster \ --release-label
emr-6.6.0
\ --os-release-label2.0.20220406.1
\ --service-roleEMR_DefaultRole
\ --ec2-attributesInstanceProfile=EMR_EC2_DefaultRole
\ --instance-groupsInstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large
InstanceGroupType=CORE,InstanceCount=1,InstanceType=m4.large
例 24: EMRリリース 6.15.0 以降で作成されたクラスターインスタンスのサイズ、iops、スループットのEBSルートボリューム属性を指定するには
次の
create-cluster
例では、ルートボリューム属性を使用してEC2インスタンスのルートボリューム仕様を設定する Amazon EMRクラスターを作成します。aws emr create-cluster \ --name
"Cluster with My Custom AMI"
\ --custom-ami-idami-a518e6df
\ --ebs-root-volume-size20
\ --ebs-root-volume-iops3000
\ --ebs-root-volume-throughput125
\ --release-labelemr-6.15.0
\ --use-default-roles \ --instance-count2
\ --instance-typem4.large
-
API 詳細については、AWS CLI 「 コマンドリファレンスCreateClusterExamples
」の「」を参照してください。
-
次のコード例は、create-default-roles
を使用する方法を示しています。
- AWS CLI
-
1. のデフォルトIAMロールを作成するには EC2
コマンド:
aws emr create-default-roles
出力:
If the role already exists then the command returns nothing. If the role does not exist then the output will be: [ { "RolePolicy": { "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:*", "dynamodb:*", "ec2:Describe*", "elasticmapreduce:Describe*", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ListClusters", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListInstances", "elasticmapreduce:ListSteps", "kinesis:CreateStream", "kinesis:DeleteStream", "kinesis:DescribeStream", "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:MergeShards", "kinesis:PutRecord", "kinesis:SplitShard", "rds:Describe*", "s3:*", "sdb:*", "sns:*", "sqs:*" ], "Resource": "*", "Effect": "Allow" } ] }, "Role": { "AssumeRolePolicyDocument": { "Version": "2008-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] }, "RoleId": "AROAIQ5SIQUGL5KMYBJX6", "CreateDate": "2015-06-09T17:09:04.602Z", "RoleName": "EMR_EC2_DefaultRole", "Path": "/", "Arn": "arn:aws:iam::176430881729:role/EMR_EC2_DefaultRole" } }, { "RolePolicy": { "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:AuthorizeSecurityGroupIngress", "ec2:CancelSpotInstanceRequests", "ec2:CreateSecurityGroup", "ec2:CreateTags", "ec2:DeleteTags", "ec2:DescribeAvailabilityZones", "ec2:DescribeAccountAttributes", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:DescribeKeyPairs", "ec2:DescribePrefixLists", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSpotInstanceRequests", "ec2:DescribeSpotPriceHistory", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcs", "ec2:ModifyImageAttribute", "ec2:ModifyInstanceAttribute", "ec2:RequestSpotInstances", "ec2:RunInstances", "ec2:TerminateInstances", "iam:GetRole", "iam:GetRolePolicy", "iam:ListInstanceProfiles", "iam:ListRolePolicies", "iam:PassRole", "s3:CreateBucket", "s3:Get*", "s3:List*", "sdb:BatchPutAttributes", "sdb:Select", "sqs:CreateQueue", "sqs:Delete*", "sqs:GetQueue*", "sqs:ReceiveMessage" ], "Resource": "*", "Effect": "Allow" } ] }, "Role": { "AssumeRolePolicyDocument": { "Version": "2008-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Sid": "", "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" } } ] }, "RoleId": "AROAI3SRVPPVSRDLARBPY", "CreateDate": "2015-06-09T17:09:10.401Z", "RoleName": "EMR_DefaultRole", "Path": "/", "Arn": "arn:aws:iam::176430881729:role/EMR_DefaultRole" } } ]
-
API 詳細については、AWS CLI 「 コマンドリファレンスCreateDefaultRoles
」の「」を参照してください。
-
次のコード例は、create-security-configuration
を使用する方法を示しています。
- AWS CLI
-
1. 証明書プロバイダーPEMの場合は で転送時の暗号化を有効にし、ローカルディスクキープロバイダー AWSの場合は SSE-S3 で保管時のS3暗号化を有効にしてKMSセキュリティ設定を作成するには
コマンド:
aws emr create-security-configuration --name MySecurityConfig --security-configuration '{ "EncryptionConfiguration": { "EnableInTransitEncryption" : true, "EnableAtRestEncryption" : true, "InTransitEncryptionConfiguration" : { "TLSCertificateConfiguration" : { "CertificateProviderType" : "PEM", "S3Object" : "s3://mycertstore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration" : { "S3EncryptionConfiguration" : { "EncryptionMode" : "SSE-S3" }, "LocalDiskEncryptionConfiguration" : { "EncryptionKeyProviderType" : "AwsKms", "AwsKmsKey" : "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }'
出力:
{ "CreationDateTime": 1474070889.129, "Name": "MySecurityConfig" }
JSON 同等 (security_configuration.json の内容):
{ "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://mycertstore/artifacts/MyCerts.zip" } }, "AtRestEncryptionConfiguration": { "S3EncryptionConfiguration": { "EncryptionMode": "SSE-S3" }, "LocalDiskEncryptionConfiguration": { "EncryptionKeyProviderType": "AwsKms", "AwsKmsKey": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012" } } } }
コマンド (security_configuration.json を使用):
aws emr create-security-configuration --name "MySecurityConfig" --security-configuration file://./security_configuration.json
出力:
{ "CreationDateTime": 1474070889.129, "Name": "MySecurityConfig" }
2. クラスター専用KDCおよびクロスレルム信頼を使用して Kerberos を有効にしてセキュリティ設定を作成するには
コマンド:
aws emr create-security-configuration --name MySecurityConfig --security-configuration '{ "AuthenticationConfiguration": { "KerberosConfiguration": { "Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": { "TicketLifetimeInHours": 24, "CrossRealmTrustConfiguration": { "Realm": "AD.DOMAIN.COM", "Domain": "ad.domain.com", "AdminServer": "ad.domain.com", "KdcServer": "ad.domain.com" } } } } }'
出力:
{ "CreationDateTime": 1490225558.982, "Name": "MySecurityConfig" }
JSON 同等 (security_configuration.json の内容):
{ "AuthenticationConfiguration": { "KerberosConfiguration": { "Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": { "TicketLifetimeInHours": 24, "CrossRealmTrustConfiguration": { "Realm": "AD.DOMAIN.COM", "Domain": "ad.domain.com", "AdminServer": "ad.domain.com", "KdcServer": "ad.domain.com" } } } } }
コマンド (security_configuration.json を使用):
aws emr create-security-configuration --name "MySecurityConfig" --security-configuration file://./security_configuration.json
出力:
{ "CreationDateTime": 1490225558.982, "Name": "MySecurityConfig" }
-
API 詳細については、AWS CLI 「 コマンドリファレンスCreateSecurityConfiguration
」の「」を参照してください。
-
次の例は、delete-security-configuration
を使用する方法を説明しています。
- AWS CLI
-
現在のリージョンのセキュリティ設定を削除するには
コマンド:
aws emr delete-security-configuration --name MySecurityConfig
出力:
None
-
API 詳細については、AWS CLI 「 コマンドリファレンスDeleteSecurityConfiguration
」の「」を参照してください。
-
次のコード例は、describe-cluster
を使用する方法を示しています。
- AWS CLI
-
コマンド:
aws emr describe-cluster --cluster-id j-XXXXXXXX
出力:
For release-label based uniform instance groups cluster: { "Cluster": { "Status": { "Timeline": { "ReadyDateTime": 1436475075.199, "CreationDateTime": 1436474656.563, }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting for steps to run" } }, "Ec2InstanceAttributes": { "ServiceAccessSecurityGroup": "sg-xxxxxxxx", "EmrManagedMasterSecurityGroup": "sg-xxxxxxxx", "IamInstanceProfile": "EMR_EC2_DefaultRole", "Ec2KeyName": "myKey", "Ec2AvailabilityZone": "us-east-1c", "EmrManagedSlaveSecurityGroup": "sg-yyyyyyyyy" }, "Name": "My Cluster", "ServiceRole": "EMR_DefaultRole", "Tags": [], "TerminationProtected": true, "UnhealthyNodeReplacement": true, "ReleaseLabel": "emr-4.0.0", "NormalizedInstanceHours": 96, "InstanceGroups": [ { "RequestedInstanceCount": 2, "Status": { "Timeline": { "ReadyDateTime": 1436475074.245, "CreationDateTime": 1436474656.564, "EndDateTime": 1436638158.387 }, "State": "RUNNING", "StateChangeReason": { "Message": "", } }, "Name": "CORE", "InstanceGroupType": "CORE", "Id": "ig-YYYYYYY", "Configurations": [], "InstanceType": "m3.large", "Market": "ON_DEMAND", "RunningInstanceCount": 2 }, { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1436475074.245, "CreationDateTime": 1436474656.564, "EndDateTime": 1436638158.387 }, "State": "RUNNING", "StateChangeReason": { "Message": "", } }, "Name": "MASTER", "InstanceGroupType": "MASTER", "Id": "ig-XXXXXXXXX", "Configurations": [], "InstanceType": "m3.large", "Market": "ON_DEMAND", "RunningInstanceCount": 1 } ], "Applications": [ { "Name": "Hadoop" } ], "VisibleToAllUsers": true, "BootstrapActions": [], "MasterPublicDnsName": "ec2-54-147-144-78.compute-1.amazonaws.com", "AutoTerminate": false, "Id": "j-XXXXXXXX", "Configurations": [ { "Properties": { "fs.s3.consistent.retryPeriodSeconds": "20", "fs.s3.enableServerSideEncryption": "true", "fs.s3.consistent": "false", "fs.s3.consistent.retryCount": "2" }, "Classification": "emrfs-site" } ] } } For release-label based instance fleet cluster: { "Cluster": { "Status": { "Timeline": { "ReadyDateTime": 1487897289.705, "CreationDateTime": 1487896933.942 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting for steps to run" } }, "Ec2InstanceAttributes": { "EmrManagedMasterSecurityGroup": "sg-xxxxx", "RequestedEc2AvailabilityZones": [], "RequestedEc2SubnetIds": [], "IamInstanceProfile": "EMR_EC2_DefaultRole", "Ec2AvailabilityZone": "us-east-1a", "EmrManagedSlaveSecurityGroup": "sg-xxxxx" }, "Name": "My Cluster", "ServiceRole": "EMR_DefaultRole", "Tags": [], "TerminationProtected": false, "UnhealthyNodeReplacement": false, "ReleaseLabel": "emr-5.2.0", "NormalizedInstanceHours": 472, "InstanceCollectionType": "INSTANCE_FLEET", "InstanceFleets": [ { "Status": { "Timeline": { "ReadyDateTime": 1487897212.74, "CreationDateTime": 1487896933.948 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 1, "Name": "MASTER", "InstanceFleetType": "MASTER", "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 60, "TimeoutAction": "TERMINATE_CLUSTER" } }, "TargetSpotCapacity": 1, "ProvisionedOnDemandCapacity": 0, "InstanceTypeSpecifications": [ { "BidPrice": "0.5", "InstanceType": "m3.xlarge", "WeightedCapacity": 1 } ], "Id": "if-xxxxxxx", "TargetOnDemandCapacity": 0 } ], "Applications": [ { "Version": "2.7.3", "Name": "Hadoop" } ], "ScaleDownBehavior": "TERMINATE_AT_INSTANCE_HOUR", "VisibleToAllUsers": true, "BootstrapActions": [], "MasterPublicDnsName": "ec2-xxx-xx-xxx-xx.compute-1.amazonaws.com", "AutoTerminate": false, "Id": "j-xxxxx", "Configurations": [] } } For ami based uniform instance group cluster: { "Cluster": { "Status": { "Timeline": { "ReadyDateTime": 1399400564.432, "CreationDateTime": 1399400268.62 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting for steps to run" } }, "Ec2InstanceAttributes": { "IamInstanceProfile": "EMR_EC2_DefaultRole", "Ec2AvailabilityZone": "us-east-1c" }, "Name": "My Cluster", "Tags": [], "TerminationProtected": true, "UnhealthyNodeReplacement": true, "RunningAmiVersion": "2.5.4", "InstanceGroups": [ { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1399400558.848, "CreationDateTime": 1399400268.621 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "Master instance group", "InstanceGroupType": "MASTER", "InstanceType": "m1.small", "Id": "ig-ABCD", "Market": "ON_DEMAND", "RunningInstanceCount": 1 }, { "RequestedInstanceCount": 2, "Status": { "Timeline": { "ReadyDateTime": 1399400564.439, "CreationDateTime": 1399400268.621 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "Core instance group", "InstanceGroupType": "CORE", "InstanceType": "m1.small", "Id": "ig-DEF", "Market": "ON_DEMAND", "RunningInstanceCount": 2 } ], "Applications": [ { "Version": "1.0.3", "Name": "hadoop" } ], "BootstrapActions": [], "VisibleToAllUsers": false, "RequestedAmiVersion": "2.4.2", "LogUri": "s3://myLogUri/", "AutoTerminate": false, "Id": "j-XXXXXXXX" } }
-
API 詳細については、AWS CLI 「 コマンドリファレンスDescribeCluster
」の「」を参照してください。
-
次の例は、describe-step
を使用する方法を説明しています。
- AWS CLI
-
次のコマンドは、クラスター ID
j-3SD91U2E1L2QX
を持つクラスターでステップ IDs-3LZC0QUT43AM
を持つステップを記述します。aws emr describe-step --cluster-id
j-3SD91U2E1L2QX
--step-ids-3LZC0QUT43AM
出力:
{ "Step": { "Status": { "Timeline": { "EndDateTime": 1433200470.481, "CreationDateTime": 1433199926.597, "StartDateTime": 1433200404.959 }, "State": "COMPLETED", "StateChangeReason": {} }, "Config": { "Args": [ "s3://us-west-2.elasticmapreduce/libs/hive/hive-script", "--base-path", "s3://us-west-2.elasticmapreduce/libs/hive/", "--install-hive", "--hive-versions", "0.13.1" ], "Jar": "s3://us-west-2.elasticmapreduce/libs/script-runner/script-runner.jar", "Properties": {} }, "Id": "s-3LZC0QUT43AM", "ActionOnFailure": "TERMINATE_CLUSTER", "Name": "Setup hive" } }
-
API 詳細については、AWS CLI 「 コマンドリファレンスDescribeStep
」の「」を参照してください。
-
次の例は、get
を使用する方法を説明しています。
- AWS CLI
-
次の は、クラスター ID を持つクラスター内のマスターインスタンスから
hadoop-examples.jar
アーカイブをダウンロードしますj-3SD91U2E1L2QX
。aws emr get --cluster-id
j-3SD91U2E1L2QX
--key-pair-file~/.ssh/mykey.pem
--src/home/hadoop-examples.jar
--dest~
-
API 詳細については、「 コマンドリファレンスの取得
」を参照してください。 AWS CLI
-
次のコード例は、list-clusters
を使用する方法を示しています。
- AWS CLI
-
次のコマンドは、現在のリージョン内のすべてのアクティブなEMRクラスターを一覧表示します。
aws emr list-clusters --active
出力:
{ "Clusters": [ { "Status": { "Timeline": { "ReadyDateTime": 1433200405.353, "CreationDateTime": 1433199926.596 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "NormalizedInstanceHours": 6, "Id": "j-3SD91U2E1L2QX", "Name": "my-cluster" } ] }
-
API 詳細については、AWS CLI 「 コマンドリファレンスListClusters
」の「」を参照してください。
-
次のコード例は、list-instance-fleets
を使用する方法を示しています。
- AWS CLI
-
クラスター内のインスタンスフリートの設定の詳細を取得するには
この例では、指定されたクラスター内のインスタンスフリートの詳細を一覧表示します。
コマンド:
list-instance-fleets --cluster-id 'j-12ABCDEFGHI34JK'
出力:
{ "InstanceFleets": [ { "Status": { "Timeline": { "ReadyDateTime": 1488759094.637, "CreationDateTime": 1488758719.817 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 6, "Name": "CORE", "InstanceFleetType": "CORE", "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 60, "TimeoutAction": "TERMINATE_CLUSTER" } }, "ProvisionedOnDemandCapacity": 2, "InstanceTypeSpecifications": [ { "BidPrice": "0.5", "InstanceType": "m3.xlarge", "WeightedCapacity": 2 } ], "Id": "if-1ABC2DEFGHIJ3" }, { "Status": { "Timeline": { "ReadyDateTime": 1488759058.598, "CreationDateTime": 1488758719.811 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 0, "Name": "MASTER", "InstanceFleetType": "MASTER", "ProvisionedOnDemandCapacity": 1, "InstanceTypeSpecifications": [ { "BidPriceAsPercentageOfOnDemandPrice": 100.0, "InstanceType": "m3.xlarge", "WeightedCapacity": 1 } ], "Id": "if-2ABC4DEFGHIJ4" } ] }
-
API 詳細については、AWS CLI 「 コマンドリファレンスListInstanceFleets
」の「」を参照してください。
-
次のコード例は、list-instances
を使用する方法を示しています。
- AWS CLI
-
次のコマンドは、クラスター ID を持つクラスター内のすべてのインスタンスを一覧表示します
j-3C6XNQ39VR9WL
。aws emr list-instances --cluster-id
j-3C6XNQ39VR9WL
出力:
For a uniform instance group based cluster { "Instances": [ { "Status": { "Timeline": { "ReadyDateTime": 1433200400.03, "CreationDateTime": 1433199960.152 }, "State": "RUNNING", "StateChangeReason": {} }, "Ec2InstanceId": "i-f19ecfee", "PublicDnsName": "ec2-52-52-41-150.us-west-2.compute.amazonaws.com", "PrivateDnsName": "ip-172-21-11-216.us-west-2.compute.internal", "PublicIpAddress": "52.52.41.150", "Id": "ci-3NNHQUQ2TWB6Y", "PrivateIpAddress": "172.21.11.216" }, { "Status": { "Timeline": { "ReadyDateTime": 1433200400.031, "CreationDateTime": 1433199949.102 }, "State": "RUNNING", "StateChangeReason": {} }, "Ec2InstanceId": "i-1feee4c2", "PublicDnsName": "ec2-52-63-246-32.us-west-2.compute.amazonaws.com", "PrivateDnsName": "ip-172-31-24-130.us-west-2.compute.internal", "PublicIpAddress": "52.63.246.32", "Id": "ci-GAOCMKNKDCV7", "PrivateIpAddress": "172.21.11.215" }, { "Status": { "Timeline": { "ReadyDateTime": 1433200400.031, "CreationDateTime": 1433199949.102 }, "State": "RUNNING", "StateChangeReason": {} }, "Ec2InstanceId": "i-15cfeee3", "PublicDnsName": "ec2-52-25-246-63.us-west-2.compute.amazonaws.com", "PrivateDnsName": "ip-172-31-24-129.us-west-2.compute.internal", "PublicIpAddress": "52.25.246.63", "Id": "ci-2W3TDFFB47UAD", "PrivateIpAddress": "172.21.11.214" } ] } For a fleet based cluster: { "Instances": [ { "Status": { "Timeline": { "ReadyDateTime": 1487810810.878, "CreationDateTime": 1487810588.367, "EndDateTime": 1488022990.924 }, "State": "TERMINATED", "StateChangeReason": { "Message": "Instance was terminated." } }, "Ec2InstanceId": "i-xxxxx", "InstanceFleetId": "if-xxxxx", "EbsVolumes": [], "PublicDnsName": "ec2-xx-xxx-xxx-xxx.compute-1.amazonaws.com", "InstanceType": "m3.xlarge", "PrivateDnsName": "ip-xx-xx-xxx-xx.ec2.internal", "Market": "SPOT", "PublicIpAddress": "xx.xx.xxx.xxx", "Id": "ci-xxxxx", "PrivateIpAddress": "10.47.191.80" } ] }
-
API 詳細については、AWS CLI 「 コマンドリファレンスListInstances
」の「」を参照してください。
-
次のコード例は、list-security-configurations
を使用する方法を示しています。
- AWS CLI
-
現在のリージョンのセキュリティ設定を一覧表示するには
コマンド:
aws emr list-security-configurations
出力:
{ "SecurityConfigurations": [ { "CreationDateTime": 1473889697.417, "Name": "MySecurityConfig-1" }, { "CreationDateTime": 1473889697.417, "Name": "MySecurityConfig-2" } ] }
-
API 詳細については、AWS CLI 「 コマンドリファレンスListSecurityConfigurations
」の「」を参照してください。
-
次の例は、list-steps
を使用する方法を説明しています。
- AWS CLI
-
次のコマンドは、クラスター ID
j-3SD91U2E1L2QX
を持つクラスターのすべてのステップを一覧表示します。aws emr list-steps --cluster-id
j-3SD91U2E1L2QX
-
API 詳細については、AWS CLI 「 コマンドリファレンスListSteps
」の「」を参照してください。
-
次のコード例は、modify-cluster-attributes
を使用する方法を示しています。
- AWS CLI
-
次のコマンドは、ID を持つEMRクラスターの可視性
j-301CDNY0J5XM4
をすべてのユーザーに設定します。aws emr modify-cluster-attributes --cluster-id
j-301CDNY0J5XM4
--visible-to-all-users-
API 詳細については、AWS CLI 「 コマンドリファレンスModifyClusterAttributes
」の「」を参照してください。
-
次の例は、modify-instance-fleet
を使用する方法を説明しています。
- AWS CLI
-
インスタンスフリートのターゲット容量を変更するには
この例では、指定されたインスタンスフリートのオンデマンドおよびスポットターゲット容量を 1 に変更します。
コマンド:
aws emr modify-instance-fleet --cluster-id '
j-12ABCDEFGHI34JK
' --instance-fleet InstanceFleetId='if-2ABC4DEFGHIJ4',TargetOnDemandCapacity=1,TargetSpotCapacity=1-
API 詳細については、AWS CLI 「 コマンドリファレンスModifyInstanceFleet
」の「」を参照してください。
-
次のコード例は、put
を使用する方法を示しています。
- AWS CLI
-
次のコマンドは、 という名前
healthcheck.sh
のファイルを、クラスター ID のクラスター内のマスターインスタンスにアップロードしますj-3SD91U2E1L2QX
。aws emr put --cluster-id
j-3SD91U2E1L2QX
--key-pair-file~/.ssh/mykey.pem
--src~/scripts/healthcheck.sh
--dest/home/hadoop/bin/healthcheck.sh
-
API 詳細については、https://awscli.amazonaws.com/v2/documentation/api/latest/reference/emr/put.html
「 コマンドAWS CLI リファレンス に入れる」を参照してください。
-
次のコード例は、remove-tags
を使用する方法を示しています。
- AWS CLI
-
次のコマンドは、 キーを持つタグをクラスター ID を持つクラスター
prod
から削除しますj-3SD91U2E1L2QX
。aws emr remove-tags --resource-id
j-3SD91U2E1L2QX
--tag-keysprod
-
API 詳細については、AWS CLI 「 コマンドリファレンスRemoveTags
」の「」を参照してください。
-
次の例は、schedule-hbase-backup
を使用する方法を説明しています。
- AWS CLI
-
注: このコマンドは、AMIバージョン 2.x および 3.x HBaseでのみ使用できます。
1. フルHBaseバックアップをスケジュールするには >>>>>>> 06ab6d6e13564b5733d75abaf3b599f93cf39a23
コマンド:
aws emr schedule-hbase-backup --cluster-id j-XXXXXXYY --type full --dir s3://myBucket/backup --interval 10 --unit hours --start-time 2014-04-21T05:26:10Z --consistent
出力:
None
2. 増分HBaseバックアップをスケジュールするには
コマンド:
aws emr schedule-hbase-backup --cluster-id j-XXXXXXYY --type incremental --dir s3://myBucket/backup --interval 30 --unit minutes --start-time 2014-04-21T05:26:10Z --consistent
出力:
None
-
API 詳細については、AWS CLI 「 コマンドリファレンスScheduleHbaseBackup
」の「」を参照してください。
-
次のコード例は、socks
を使用する方法を示しています。
- AWS CLI
-
次のコマンドは、クラスター ID が のクラスター内のマスターインスタンスとのソックス接続を開きます
j-3SD91U2E1L2QX
。aws emr socks --cluster-id
j-3SD91U2E1L2QX
--key-pair-file~/.ssh/mykey.pem
キーペアファイルオプションは、プライベートキーファイルへのローカルパスを取得します。
-
API 詳細については、AWS CLI 「 コマンドリファレンス」の「Socks
」を参照してください。
-
次のコード例は、ssh
を使用する方法を示しています。
- AWS CLI
-
次のコマンドは、クラスター ID が のクラスター内のマスターインスタンスとの ssh 接続を開きます
j-3SD91U2E1L2QX
。aws emr ssh --cluster-id
j-3SD91U2E1L2QX
--key-pair-file~/.ssh/mykey.pem
キーペアファイルオプションは、プライベートキーファイルへのローカルパスを取得します。
出力:
ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=10 -i /home/local/user/.ssh/mykey.pem hadoop@ec2-52-52-41-150.us-west-2.compute.amazonaws.com Warning: Permanently added 'ec2-52-52-41-150.us-west-2.compute.amazonaws.com,52.52.41.150' (ECDSA) to the list of known hosts. Last login: Mon Jun 1 23:15:38 2015 __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2015.03-release-notes/ 26 package(s) needed for security, out of 39 available Run "sudo yum update" to apply all updates. -------------------------------------------------------------------------------- Welcome to Amazon Elastic MapReduce running Hadoop and Amazon Linux. Hadoop is installed in /home/hadoop. Log files are in /mnt/var/log/hadoop. Check /mnt/var/log/hadoop/steps for diagnosing step failures. The Hadoop UI can be accessed via the following commands: ResourceManager lynx http://ip-172-21-11-216:9026/ NameNode lynx http://ip-172-21-11-216:9101/ -------------------------------------------------------------------------------- [hadoop@ip-172-31-16-216 ~]$
-
API 詳細については、「 コマンドリファレンス」の「Ssh
」を参照してください。 AWS CLI
-