

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación de un clúster con Apache Spark
<a name="emr-spark-launch"></a>

El siguiente procedimiento crea un clúster con [Spark](https://aws.amazon.com/big-data/what-is-spark/) instalado a través de las **Opciones rápidas** en la consola de Amazon EMR.

Como alternativa, puede usar **Opciones avanzadas** para personalizar aún más la configuración del clúster o para enviar pasos a fin de instalar aplicaciones mediante programación y, a continuación, ejecutar las aplicaciones personalizadas. Con alguna de las opciones de creación de clústeres, puede elegir utilizar AWS como metaalmacén de Spark SQL. Para obtener más información, consulte [Utilice AWS Glue Data Catalog con Spark en Amazon EMR](emr-spark-glue.md).

**Para lanzar un clúster con Spark instalado**

1. [Abra la consola Amazon EMR en https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr/)

1. Elija **Crear clúster** para utilizar **Opciones rápidas**.

1. Ingrese un **nombre de clúster**. El nombre del clúster no puede contener los caracteres <, >, \$1, \$1 o ` (acento grave).

1.  En **Configuración de software**, elija una opción de **Versión**.

1.  En **Aplicaciones**, elija el paquete de aplicaciones de **Spark**.

1.  Seleccione las demás opciones que necesite y, a continuación, elija **Create cluster (Crear clúster)**.
**nota**  
Para configurar Spark cuando se crea el clúster, consulte [Configurar Spark](emr-spark-configure.md).

**Para lanzar un clúster con Spark instalado, utilice AWS CLI**
+ Cree el clúster con el siguiente comando:

  ```
  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
  ```

**nota**  
Se incluyen caracteres de continuación de línea de Linux (\$1) para facilitar la lectura. Se pueden eliminar o utilizar en los comandos de Linux. En Windows, elimínelos o sustitúyalos por un signo de intercalación (^).

**Para lanzar un clúster con Spark instalado con el SDK para Java**

Especifique Spark como una aplicación con `SupportedProductConfig` utilizado en `RunJobFlowRequest`.
+ El siguiente ejemplo muestra cómo crear un clúster con Spark mediante Java.

  ```
  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());
          }
  }
  ```