Création d'un cluster à l'aide de Spark - Amazon EMR

Création d'un cluster à l'aide de Spark

La procédure suivante crée un cluster avec Spark installé à l'aide des Quick Options (Options rapides) sur la console EMR.

Vous pouvez alternativement utiliser Options avancées pour personnaliser davantage la configuration de votre cluster, ou pour soumettre des étapes d'installation par programmation d'applications, puis d'exécution d'applications personnalisées. Avec l'une ou l'autre des options de création de cluster, vous pouvez choisir d'utiliser AWS Glue comme métastore Spark SQL. Pour en savoir plus, consultez Utiliser le catalogue de données AWS Glue comme métastore pour Spark SQL.

Pour lancer un cluster avec Spark installé
  1. Ouvrez la console Amazon EMR à l'adressehttps://console.aws.amazon.com/emr.

  2. Choisissez Créer un cluster pour utiliser Options rapides.

  3. Entrez un nom de cluster.

  4. Pour Configuration logicielle, choisissez une option de Version.

  5. Sous Applications, choisissez la solution groupée d'applications Spark.

  6. Sélectionnez d'autres options si nécessaire, puis choisissez Create cluster (Créer le cluster).

    Note

    Pour configurer Spark lorsque vous créez le cluster, consultez Configuration de Spark.

Pour lancer un cluster avec Spark installé à l'aide de l'AWS CLI
  • Créez le cluster à l'aide de la commande suivante.

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

Les caractères de continuation de ligne Linux (\) sont inclus pour des raisons de lisibilité. Ils peuvent être supprimés ou utilisés dans les commandes Linux. Pour Windows, supprimez-les ou remplacez-les par un caret (^).

Pour lancer un cluster avec Spark installé à l'aide du kit SDK pour Java

Spécifiez Spark comme application avec SupportedProductConfig utilisé dans RunJobFlowRequest.

  • L'exemple suivant montre comment créer un cluster avec Spark au moyen de 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()); } }