Dela via


Felsök Apache Spark med Azure HDInsight

Lär dig mer om de viktigaste problemen och deras lösningar när du arbetar med Apache Spark-nyttolaster i Apache Ambari.

Hur gör jag för att konfigurera ett Apache Spark-program med Apache Ambari i kluster?

Spark-konfigurationsvärden kan justeras för att undvika ett Apache Spark-programfel OutofMemoryError . Följande steg visar standardvärden för Spark-konfiguration i Azure HDInsight:

  1. Logga in på Ambari på https://CLUSTERNAME.azurehdidnsight.net med dina autentiseringsuppgifter för klustret. Den första skärmen visar en översiktsinstrumentpanel. Det finns små kosmetiska skillnader mellan HDInsight 4.0.

  2. Gå till Spark2-konfigurationer>.

    Välj fliken Konfigurationer.

  3. I listan med konfigurationer väljer du och expanderar Custom-spark2-defaults.

  4. Leta efter den värdeinställning som du behöver justera, till exempel spark.executor.memory. I det här fallet är värdet på 9728 m för högt.

    Välj custom-spark-defaults.

  5. Ange värdet till den rekommenderade inställningen. Värdet 2048m rekommenderas för den här inställningen.

  6. Spara värdet och spara sedan konfigurationen. Välj Spara.

    Ändra värdet till 2 048 m.

    Skriv en anteckning om konfigurationsändringarna och välj sedan Spara.

    Ange en anteckning om de ändringar som du har gjort.

    Du får ett meddelande om några konfigurationer behöver åtgärdas. Anteckna objekten och välj sedan Fortsätt ändå.

    Välj Fortsätt ändå.

  7. När en konfiguration sparas uppmanas du att starta om tjänsten. Välj Starta om.

    Välj Starta om.

    Bekräfta omstarten.

    Välj Bekräfta starta om alla.

    Du kan granska de processer som körs.

    Granska processer som körs.

  8. Du kan lägga till konfigurationer. I listan med konfigurationer väljer du Custom-spark2-defaults och sedan Lägg till egenskap.

    Välj lägg till egenskap.

  9. Definiera en ny egenskap. Du kan definiera en enskild egenskap med hjälp av en dialogruta för specifika inställningar, till exempel datatypen. Eller så kan du definiera flera egenskaper med hjälp av en definition per rad.

    I det här exemplet definieras egenskapen spark.driver.memory med värdet 4g.

    Definiera ny egenskap.

  10. Spara konfigurationen och starta sedan om tjänsten enligt beskrivningen i steg 6 och 7.

De här ändringarna är klusteromfattande men kan åsidosättas när du skickar Spark-jobbet.

Hur gör jag för att konfigurera ett Apache Spark-program med hjälp av en Jupyter Notebook i kluster?

I den första cellen i Jupyter Notebook anger du Spark-konfigurationerna i giltigt JSON-format efter %%configure-direktivet . Ändra de faktiska värdena efter behov:

Lägg till en konfiguration.

Hur gör jag för att konfigurera ett Apache Spark-program med Apache Livy i kluster?

Skicka Spark-programmet till Livy med hjälp av en REST-klient som cURL. Använd ett kommando som liknar följande. Ändra de faktiska värdena efter behov:

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

Hur gör jag för att konfigurera ett Apache Spark-program med spark-submit i kluster?

Starta spark-shell med ett kommando som liknar följande. Ändra det faktiska värdet för konfigurationerna efter behov:

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 läsning

Apache Spark-jobböverföring i HDInsight-kluster

Nästa steg

Om du inte ser problemet eller inte kan lösa problemet går du till någon av följande kanaler för mer support: