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 crea un cluster con Spark
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 entrambe le opzioni di creazione del cluster, puoi scegliere di utilizzare AWS Glue come SQL metastore Spark. Per ulteriori informazioni, consulta Usa il AWS Glue Data Catalog come metastore per Spark SQL.
Per avviare un cluster con Spark installato
Apri la EMR console Amazon in https://console.aws.amazon.com/emr
. -
Scegli Create cluster (Crea cluster) per utilizzare Quick Options (Opzioni rapide).
-
Immetti un Cluster name (Nome cluster). Il nome del cluster non può contenere i caratteri <, >, $, | o `(backtick).
-
Per Software Configuration (Configurazione del software), scegli un'opzione di Release (Rilascio).
-
Per Applications (Applicazioni), scegli il bundle di applicazioni Spark.
-
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.3.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, rimuovili o sostituiscili con un accento circonflesso (^).
Per avviare un cluster con Spark installato utilizzando il 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()); } }