

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Apache Spark を使用したクラスターの作成
<a name="emr-spark-launch"></a>

次の手順では、Amazon EMR コンソールで **[クイックオプション]** を使用して、[Spark](https://aws.amazon.com/big-data/what-is-spark/) がインストールされたクラスターを作成します。

**[Advanced Options]** (詳細オプション) を使用してクラスター設定を詳細にカスタマイズしたり、アプリケーションをプログラムでインストールするステップを送信してカスタムアプリケーションを実行したりすることもできます。どちらのクラスター作成オプションでも、Spark SQL メタストアとして AWS Glue を使用するように選択できます。詳細については「[Amazon EMR AWS で Spark で Glue データカタログを使用する](emr-spark-glue.md)」を参照してください。

**Spark がインストールされたクラスターを起動するには**

1. [https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr/) で Amazon EMR コンソールを開きます。

1. **[Create cluster]** (クラスターの作成) を選択して、**[Quick Options]** (クイックオプション) を使用します。

1. **[Cluster name]** (クラスター名) を入力します。クラスター名に <、>、\$1、\$1、` (バックティック) の文字を含めることはできません。

1.  **[Software Configuration]** (ソフトウェア設定) では、**[Release]** (リリース) オプションを選択します。

1.  **[Applications]** (アプリケーション) では、**Spark** アプリケーションバンドルを選択します。

1.  必要に応じて他のオプションを選択し、[**Create cluster (クラスターの作成)**] を選択します。
**注記**  
クラスターを作成する場合に Spark を設定するには、「[Spark の設定](emr-spark-configure.md)」を参照してください。

**を使用して Spark がインストールされたクラスターを起動するには AWS CLI**
+ 次のコマンドを使用してクラスターを作成します。

  ```
  aws emr create-cluster --name "Spark cluster" --release-label emr-7.12.0 --applications Name=Spark \
  --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 --use-default-roles
  ```

**注記**  
読みやすくするために、Linux 行連続文字 (\$1) が含まれています。Linux コマンドでは、これらは削除することも、使用することもできます。Windows の場合、削除するか、キャレット (^) に置き換えてください。

**SDK for Java を使用し、Spark がインストールされたクラスターを起動するには**

`SupportedProductConfig` で使用される `RunJobFlowRequest` を使用して Spark をアプリケーションとして指定します。
+ 次の例は、Java を使用した Spark のあるクラスターを作成する方法を示します。

  ```
  import com.amazonaws.AmazonClientException;
  import com.amazonaws.auth.AWSCredentials;
  import com.amazonaws.auth.AWSStaticCredentialsProvider;
  import com.amazonaws.auth.profile.ProfileCredentialsProvider;
  import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce;
  import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder;
  import com.amazonaws.services.elasticmapreduce.model.*;
  import com.amazonaws.services.elasticmapreduce.util.StepFactory;
  
  public class Main {
  
          public static void main(String[] args) {
                  AWSCredentials credentials_profile = null;
                  try {
                          credentials_profile = new ProfileCredentialsProvider("default").getCredentials();
                  } catch (Exception e) {
                          throw new AmazonClientException(
                                          "Cannot load credentials from .aws/credentials file. " +
                                                          "Make sure that the credentials file exists and the profile name is specified within it.",
                                          e);
                  }
  
                  AmazonElasticMapReduce emr = AmazonElasticMapReduceClientBuilder.standard()
                                  .withCredentials(new AWSStaticCredentialsProvider(credentials_profile))
                                  .withRegion(Regions.US_WEST_1)
                                  .build();
  
                  // create a step to enable debugging in the AWS Management Console
                  StepFactory stepFactory = new StepFactory();
                  StepConfig enabledebugging = new StepConfig()
                                  .withName("Enable debugging")
                                  .withActionOnFailure("TERMINATE_JOB_FLOW")
                                  .withHadoopJarStep(stepFactory.newEnableDebuggingStep());
  
                  Application spark = new Application().withName("Spark");
  
                  RunJobFlowRequest request = new RunJobFlowRequest()
                                  .withName("Spark Cluster")
                                  .withReleaseLabel("emr-5.20.0")
                                  .withSteps(enabledebugging)
                                  .withApplications(spark)
                                  .withLogUri("s3://path/to/my/logs/")
                                  .withServiceRole("EMR_DefaultRole")
                                  .withJobFlowRole("EMR_EC2_DefaultRole")
                                  .withInstances(new JobFlowInstancesConfig()
                                                  .withEc2SubnetId("subnet-12ab3c45")
                                                  .withEc2KeyName("myEc2Key")
                                                  .withInstanceCount(3)
                                                  .withKeepJobFlowAliveWhenNoSteps(true)
                                                  .withMasterInstanceType("m4.large")
                                                  .withSlaveInstanceType("m4.large"));
                  RunJobFlowResult result = emr.runJobFlow(request);
                  System.out.println("The cluster ID is " + result.toString());
          }
  }
  ```