Delen via


Probleem met Apache Spark oplossen met behulp van Azure HDInsight

Meer informatie over de belangrijkste problemen en hun oplossingen bij het werken met Apache Spark-nettoladingen in Apache Ambari.

Hoe kan ik een Apache Spark-toepassing configureren met behulp van Apache Ambari in clusters?

Spark-configuratiewaarden kunnen worden afgestemd bij het voorkomen van een Apache Spark-toepassingsonderzondering OutofMemoryError . In de volgende stappen worden standaardconfiguratiewaarden voor Spark in Azure HDInsight weergegeven:

  1. Meld u aan bij Ambari met https://CLUSTERNAME.azurehdidnsight.net uw clusterreferenties. In het eerste scherm wordt een overzichtsdashboard weergegeven. Er zijn kleine cosmetische verschillen tussen HDInsight 4.0.

  2. Navigeer naar Spark2-configuraties>.

    Selecteer het tabblad Configuraties.

  3. Selecteer en vouw custom-spark2-defaults uit in de lijst met configuraties.

  4. Zoek naar de waarde-instelling die u moet aanpassen, zoals spark.executor.memory. In dit geval is de waarde van 9728m te hoog.

    Selecteer aangepaste spark-standaardinstellingen.

  5. Stel de waarde in op de aanbevolen instelling. De waarde 2048m wordt aanbevolen voor deze instelling.

  6. Sla de waarde op en sla de configuratie op. Selecteer Opslaan.

    Wijzig de waarde in 2048m.

    Schrijf een notitie over de configuratiewijzigingen en selecteer Opslaan.

    Voer een notitie in over de wijzigingen die u hebt aangebracht.

    U ontvangt een melding als er configuraties aandacht nodig hebben. Noteer de items en selecteer vervolgens Toch doorgaan.

    Selecteer Toch doorgaan.

  7. Wanneer een configuratie wordt opgeslagen, wordt u gevraagd de service opnieuw op te starten. Selecteer Opnieuw starten.

    Selecteer opnieuw opstarten.

    Bevestig het opnieuw opstarten.

    Selecteer Alles opnieuw opstarten bevestigen.

    U kunt de actieve processen controleren.

    Bekijk actieve processen.

  8. U kunt configuraties toevoegen. Selecteer Custom-spark2-defaults in de lijst met configuraties en selecteer vervolgens Eigenschap toevoegen.

    Selecteer eigenschap toevoegen.

  9. Definieer een nieuwe eigenschap. U kunt één eigenschap definiëren met behulp van een dialoogvenster voor specifieke instellingen, zoals het gegevenstype. U kunt ook meerdere eigenschappen definiëren met één definitie per regel.

    In dit voorbeeld wordt de eigenschap spark.driver.memory gedefinieerd met een waarde van 4g.

    Nieuwe eigenschap definiëren.

  10. Sla de configuratie op en start de service opnieuw zoals beschreven in stap 6 en 7.

Deze wijzigingen zijn clusterbreed, maar kunnen worden overschreven wanneer u de Spark-taak verzendt.

Hoe kan ik een Apache Spark-toepassing configureren met behulp van een Jupyter Notebook in clusters?

Geef in de eerste cel van het Jupyter Notebook, na de %%configure-instructie , de Spark-configuraties in geldige JSON-indeling op. Wijzig indien nodig de werkelijke waarden:

Voeg een configuratie toe.

Hoe kan ik een Apache Spark-toepassing configureren met behulp van Apache Livy in clusters?

Verzend de Spark-toepassing naar Livy met behulp van een REST-client zoals cURL. Gebruik een opdracht die vergelijkbaar is met de volgende. Wijzig indien nodig de werkelijke waarden:

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}'  

Hoe kan ik een Apache Spark-toepassing configureren met behulp van spark-indiening in clusters?

Start spark-shell met behulp van een opdracht die vergelijkbaar is met de volgende. Wijzig indien nodig de werkelijke waarde van de configuraties:

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

Extra lezen

Apache Spark-taak indienen in HDInsight-clusters

Volgende stappen

Als u uw probleem niet hebt gezien of uw probleem niet kunt oplossen, gaat u naar een van de volgende kanalen voor meer ondersteuning: