Como posso modificar a configuração do Spark em um caderno Amazon EMR?

2 minuto de leitura
0

Como posso personalizar a configuração de um trabalho do Apache Spark em um caderno Amazon EMR?

Breve descrição

Um caderno Amazon EMR é um caderno Jupyter sem servidor. Um caderno Jupyter usa o kernel Sparkmagic como cliente para trabalhar interativamente com o Spark em um cluster EMR remoto por meio de um servidor Apache Livy. Você pode usar os comandos do Sparkmagic para personalizar a configuração do Spark. Uma configuração personalizada é útil quando você deseja fazer o seguinte:

  • Alterar a memória do executor e os núcleos do executor para um trabalho do Spark
  • Alterar a alocação de recursos para o Spark

Resolução

Modificar a sessão atual

1.    Em uma célula do caderno Jupyter, execute o comando %%configure para modificar a configuração do trabalho. No exemplo a seguir, o comando altera a memória do executor para o trabalho do Spark.

%%configure -f
{"executorMemory":"4G"}

2.    Para configurações adicionais que você normalmente passa com a opção --conf, use um objeto JSON aninhado, conforme mostrado no exemplo a seguir. Use esse método em vez de passar explicitamente um objeto conf para um SparkContext ou SparkSession.

%%configure -f
{"conf":{"spark.dynamicAllocation.enabled":"false"}}

Confirme se a alteração de configuração foi bem-sucedida

1.    No lado do cliente, execute o comando %%info no Jupyter para ver a configuração da sessão atual. Exemplo de saída:

Current session configs: {'executorMemory': '4G', 'conf': {'spark.dynamicAllocation.enabled': 'false'}, 'kind': 'pyspark'}

2.    No lado do servidor, verifique o log /var/log/livy/livy-livy-server.out no cluster do ERM. Se uma SparkSession for iniciada, você verá uma entrada de log como esta:

20/06/24 10:11:22 INFO InteractiveSession$: Creating Interactive session 2: [owner: null, request: [kind: pyspark, proxyUser: None, executorMemory: 4G, conf: spark.dynamicAllocation.enabled -> false, heartbeatTimeoutInSecond: 0]]

Informações relacionadas

Apache Livy - API REST

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos