Compartilhar via


Solucionar problemas do Apache Spark usando o Azure HDInsight

Saiba mais sobre os principais problemas e suas soluções ao trabalhar com cargas de Apache Spark no Apache Ambari.

Como fazer para configurar um aplicativo Apache Spark usando o Ambari nos clusters?

Os valores de configuração do Spark podem ser ajustados para ajudar a evitar uma exceção OutofMemoryError do aplicativo do Apache Spark. As seguintes etapas mostram os valores de configuração padrão do Spark no Azure HDInsight:

  1. Faça logon no Ambari em https://CLUSTERNAME.azurehdidnsight.net usando suas credenciais do cluster. A tela inicial exibe um painel de visão geral. Existem pequenas diferenças de caráter estético com relação ao HDInsight 4.0.

  2. Navegue até configurações>do Spark2.

    Selecione a guia Configurações .

  3. Na lista de configurações, escolha e expanda Custom-spark2-defaults.

  4. Procure a configuração do valor que você precisa ajustar, como spark.executor.memory. Nesse caso, o valor de 9728m é alto demais.

    Selecione custom-spark-defaults.

  5. Defina o valor para a configuração recomendada. O valor de 2048m é recomendado para essa configuração.

  6. Salve o valor e, em seguida, salve a configuração. Selecione Salvar.

    Altere o valor para 2048m.

    Escreva uma observação sobre as alterações de configuração e selecione Salvar.

    Insira uma observação sobre as alterações feitas.

    Você será notificado se alguma configuração requerer atenção. Observe os itens e, em seguida, selecione Continuar Assim Mesmo.

    Selecione Continuar Assim Mesmo.

  7. Sempre que uma configuração é salva, você é solicitado a reiniciar o serviço. Selecione Reiniciar.

    Escolha reiniciar.

    Confirme a reinicialização.

    Selecione Confirmar Reiniciar Tudo.

    Você pode examinar os processos em execução.

    Examinar processos em execução.

  8. Você pode adicionar configurações. Na lista de configurações, selecione Custom-spark2-defaults e, em seguida, selecione Adicionar Propriedade.

    Selecione adicionar propriedade.

  9. Defina uma nova propriedade. Você pode definir uma única propriedade usando uma caixa de diálogo para configurações específicas, como o tipo de dados. Ou você pode definir várias propriedades usando uma definição por linha.

    Neste exemplo, a propriedade spark.driver.memory é definida com um valor de 4g.

    Definir nova propriedade.

  10. Salve a configuração e, em seguida, reinicie o serviço conforme descrito nas etapas 6 e 7.

Essas alterações valem para todo o cluster, mas podem ser substituídas quando você enviar o trabalho do Spark.

Como fazer para configurar um aplicativo Apache Spark usando um Jupyter Notebook nos clusters?

Na primeira célula do Jupyter Notebook, após a diretiva %%configure, especifique as configurações do Spark em um formato JSON válido. Altere os valores reais conforme necessário:

Adicionar uma configuração.

Como fazer para configurar um aplicativo Apache Spark usando o Apache Livy nos clusters?

Envie o aplicativo Spark ao Livy usando um cliente REST, como cURL. Use um comando semelhante ao seguinte. Altere os valores reais conforme necessário:

curl -k --user 'username:password' -v -H 'Content-Type: application/json' -X POST -d '{ "file":"wasb://container@storageaccountname.blob.core.windows.net/example/jars/sparkapplication.jar", "className":"com.microsoft.spark.application", "numExecutors":4, "executorMemory":"4g", "executorCores":2, "driverMemory":"8g", "driverCores":4}'  

Como fazer para configurar um aplicativo Apache Spark usando o envio spark nos clusters?

Inicie o shell do Spark usando um comando semelhante ao seguinte. Altere o valor real das configurações conforme necessário:

spark-submit --master yarn-cluster --class com.microsoft.spark.application --num-executors 4 --executor-memory 4g --executor-cores 2 --driver-memory 8g --driver-cores 4 /home/user/spark/sparkapplication.jar

Leituras adicionais

Envio de trabalho do Apache Spark em clusters do HDInsight

Próximas etapas

Se você não encontrou seu problema ou não conseguiu resolver seu problema, visite um dos seguintes canais para obter mais suporte: