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