Come faccio a impostare i parametri Spark in Amazon EMR?
Desidero configurare i parametri di Apache Spark in Amazon EMR.
Breve descrizione
Esistono due metodi per configurare le applicazioni Spark:
- Usa argomenti della riga di comando come il comando spark-submit per evitare la codifica fissa dei valori.
- Configura i valori nel file spark-defaults.conf per rendere permanenti le modifiche.
Risoluzione
Configura i parametri Spark usando spark-submit
La shell (interprete di comandi) di Spark e il comando spark-submit supportano due modi per caricare le configurazioni in modo dinamico:
- Usa le opzioni della riga di comando, come --num-executors.
- Usa il contrassegno --conf.
Nota: esegui spark-submit--help per mostrare l'elenco completo delle opzioni.
Il comando spark-submit legge anche le opzioni di configurazione da spark-defaults.conf, nel file spark-defaults.conf, ogni riga è composta da una chiave e un valore separati da uno spazio bianco.
Per ulteriori informazioni, consulta Invio di candidature utente con spark-submit.
Per ulteriori informazioni sui parametri supportati da Spark, consulta Configurazione di Spark.
Di seguito sono elencate alcune delle opzioni di configurazione più comuni:
--class <main-class> \ --master <master-url> --deploy-mode <deploy-mode> --conf <key>=<value> --num-executors <value> \ --executor-memory <value>G \ --driver-memory <value>G \ --executor-cores <number of cores> \ --driver-cores <number of cores> \ --jars <Comma-separated list of jars> \ --packages <Comma-separated list of Maven coordinates> \ --py-files < Comma-separated list of .zip, .egg, or .py files to place on the PYTHONPATH for Python apps> \
Quando si utilizza spark-submit, l'applicazione JAR e qualsiasi JAR incluso nell'opzione --jars vengono trasferiti automaticamente al cluster. Gli URL forniti dopo --jars devono essere separati da virgole. L'elenco è incluso nei percorsi delle classi driver ed executor e i JAR e i file vengono copiati nella directory di lavoro per ogni SparkContext sui nodi executor. Tieni presente che l'espansione della directory non funziona con --jars.
Esempio
spark-submit --deploy-mode cluster --class org.apache.spark.examples.SparkPi --conf spark.dynamicAllocation.enabled=false --master yarn --num-executors 4 --driver-memory 4G --executor-memory 4G --executor-cores 1 /usr/lib/spark/examples/jars/spark-examples.jar 10
Puoi passare i parametri di memoria usando il contrassegno --conf come mostrato nell'esempio seguente:
spark-submit --deploy-mode cluster --class org.apache.spark.examples.SparkPi --conf spark.dynamicAllocation.enabled=false --master yarn >--conf spark.driver.memory=1G --conf spark.executor.memory=1G /usr/lib/spark/examples/jars/spark-examples.jar 10
Avvia spark-shell e pyspark shell usando parametri Spark personalizzati
Per avviare spark-shell o pyspark shell, esegui i seguenti comandi:
spark-shell
spark-shell --conf spark.driver.maxResultSize=1G --conf spark.driver.memory=1G --deploy-mode client --conf spark.executor.memory=1G --conf spark.executor.heartbeatInterval=10000000s --conf spark.network.timeout=10000001s --executor-cores 1 --num-executors 5 --packages org.apache.spark:spark-avro_2.12:3.1.2 --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer'
pyspark shell
pyspark --conf spark.driver.maxResultSize=1G --conf spark.driver.memory=1G --deploy-mode client --conf spark.executor.memory=1G --conf spark.executor.heartbeatInterval=10000000s --conf spark.network.timeout=10000001s --executor-cores 1 --num-executors 5 --packages org.apache.spark:spark-avro_2.12:3.1.2 --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer'
Configurazione dei parametri Spark utilizzando spark-defaults.conf
Per rendere permanenti le modifiche alla configurazione, aggiungi la configurazione al file /etc/spark/conf/spark-defaults.conf. Quindi, riavvia Spark History Server. L'esempio seguente configura la memoria dell'executor e la memoria del driver in spark-defaults.conf. In questo esempio, ogni riga è composta da una chiave e un valore separati da uno spazio bianco.
Esempio
spark.executor.memory 9486M spark.driver.memory 9486M
La seguente configurazione di esempio configura il driver Spark e la memoria dell'executor durante l'avvio del cluster:
{ "Classification": "spark-defaults", "Properties": { "spark.executor.memory": "9486M", "spark.driver.memory": "9486M" } } ]
Informazioni correlate
Best practice per gestire con esito la memoria delle applicazioni Apache Spark in Amazon EMR
Modifica il tuo cluster in tempo reale con la riconfigurazione di Amazon EMR
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa