Creazione di un cluster con Apache Spark - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di un cluster con Apache Spark

La procedura seguente consente di creare un cluster con Spark installato utilizzando Opzioni rapide nella console di Amazon EMR.

In alternativa, puoi utilizzare Advanced Options (Opzioni avanzate) per personalizzare ulteriormente la configurazione del cluster o per inviare fasi al fine di installare applicazioni a livello di codice e quindi eseguire le applicazioni personalizzate. Con una di queste opzioni di creazione del cluster, puoi scegliere di utilizzare AWS Glue come metastore Spark SQL. Per ulteriori informazioni, consulta Usa il AWS Glue Data Catalog come metastore per Spark SQL.

Per avviare un cluster con Spark installato
  1. Apri la console Amazon EMR all'indirizzo https://console.aws.amazon.com/emr.

  2. Scegli Create cluster (Crea cluster) per utilizzare Quick Options (Opzioni rapide).

  3. Immetti un Cluster name (Nome cluster). Il nome del cluster non può contenere i caratteri <, >, $, | o `(backtick).

  4. Per Software Configuration (Configurazione del software), scegli un'opzione di Release (Rilascio).

  5. Per Applications (Applicazioni), scegli il bundle di applicazioni Spark.

  6. Seleziona le altre opzioni come richiesto, quindi scegli Create cluster (Crea cluster).

    Nota

    Per configurare Spark durante la creazione del cluster, consulta Configurazione di Spark.

Per avviare un cluster con Spark installato utilizzando il AWS CLI
  • Creare il cluster con il seguente comando:

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

I caratteri di continuazione della riga Linux (\) sono inclusi per la leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuoverli o sostituirli con un accento circonflesso (^).

Avvio di un cluster con Spark installato mediante il kit SDK per Java

Specificare Spark come applicazione con SupportedProductConfig utilizzato in RunJobFlowRequest.

  • L'esempio seguente mostra come creare un cluster con Spark utilizzando 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()); } }