Configurazione delle applicazioni durante la creazione di un cluster - 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à.

Configurazione delle applicazioni durante la creazione di un cluster

Quando crei un cluster, puoi sovrascrivere le configurazioni predefinite per le applicazioni utilizzando la EMR console Amazon, il AWS Command Line Interface (AWS CLI) o il. AWS SDK

Per sovrascrivere la configurazione di default per un'applicazione, devi specificare i valori personalizzati in una classificazione di configurazione. Una classificazione di configurazione corrisponde a un XML file di configurazione per un'applicazione, ad esempio. hive-site.xml

Le classificazioni di configurazione variano in base alla versione di EMR rilascio di Amazon. Per un elenco delle classificazioni di configurazione disponibili per ciascuna versione di rilascio, consulta la pagina dei dettagli del rilascio. Ad esempio, la EMRversione 6.4.0 di Amazon.

Fornitura di una configurazione nella console quando si crea un cluster

Per fornire una configurazione, vai alla pagina Crea cluster ed espandi Impostazioni software. È quindi possibile accedere direttamente alla configurazione utilizzando una delle due JSON o una sintassi abbreviata dimostrata in shadow text nella console. Altrimenti, puoi fornire un Amazon S3 URI per un file con un JSON Configurations oggetto.

Per fornire una configurazione per un gruppo di istanze, scegli un cluster nell'elenco dei cluster, quindi scegli la scheda Configurazioni. Nella tabella Configurazioni del gruppo di istanze, scegli il gruppo di istanze da modificare, quindi scegli Riconfigura.

Fornisci una configurazione utilizzando AWS CLI quando crei un cluster

Puoi fornire una configurazione create-cluster fornendo un percorso a un JSON file archiviato localmente o in Amazon S3. L'esempio seguente presuppone che tu stia utilizzando ruoli predefiniti per Amazon EMR e che i ruoli siano stati creati. Se è necessario creare ruoli, esegui prima aws emr create-default-roles.

Se la configurazione è nella directory locale, puoi utilizzare il seguente comando di esempio:

aws emr create-cluster --use-default-roles --release-label emr-7.2.0 --applications Name=Hive \ --instance-type m5.xlarge --instance-count 3 --configurations file://./configurations.json

Se la configurazione si trova in un percorso Simple Storage Service (Amazon S3), sarà necessario impostare la seguente soluzione alternativa prima di passare il percorso Simple Storage Service (Amazon S3) al comando create-cluster.

#!/bin/sh # Assume the ConfigurationS3Path is not public, and its present in the same AWS account as the EMR cluster ConfigurationS3Path="s3://my-bucket/config.json" # Get a presigned HTTP URL for the s3Path ConfigurationURL=`aws s3 presign $ConfigurationS3Path --expires-in 300` # Fetch the presigned URL, and minify the JSON so that it spans only a single line Configurations=`curl $ConfigurationURL | jq -c .` aws emr create-cluster --use-default-roles --release-label emr-5.34.0 --instance-type m5.xlarge --instance-count 2 --applications Name=Hadoop Name=Spark --configurations $Configurations

Fornisci una configurazione utilizzando Java SDK quando crei un cluster

L'estratto del programma di seguito mostra come fornire una configurazione usando AWS SDK for Java:

Application hive = new Application().withName("Hive"); Map<String,String> hiveProperties = new HashMap<String,String>(); hiveProperties.put("hive.join.emit.interval","1000"); hiveProperties.put("hive.merge.mapfiles","true"); Configuration myHiveConfig = new Configuration() .withClassification("hive-site") .withProperties(hiveProperties); RunJobFlowRequest request = new RunJobFlowRequest() .withName("Create cluster with ReleaseLabel") .withReleaseLabel("emr-5.20.0") .withApplications(hive) .withConfigurations(myHiveConfig) .withServiceRole("EMR_DefaultRole") .withJobFlowRole("EMR_EC2_DefaultRole") .withInstances(new JobFlowInstancesConfig() .withEc2KeyName("myEc2Key") .withInstanceCount(3) .withKeepJobFlowAliveWhenNoSteps(true) .withMasterInstanceType("m4.large") .withSlaveInstanceType("m4.large") );