Felsöka Apache Spark med Azure HDInsight

Lär dig mer om de viktigaste problemen och deras lösningar när du arbetar 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 finjusteras för att undvika Apache Spark OutofMemoryError undantag. Följande steg visar standardvärden för Spark-konfiguration i Azure HDInsight:

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

  2. Gå till Spark2-konfigurationer. >

    Välj fliken Konfigurationer

  3. I listan över konfigurationer väljer och expanderar du 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 9728 m för högt.

    Välj custom-spark-defaults

  5. Ange värdet till den rekommenderade inställningen. Värdet 2 048 m 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 du har gjort

    Du får ett meddelande om några konfigurationer behöver uppmärksammas. 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 över konfigurationer väljer du Custom-spark2-defaults och väljer 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 Jupyter Notebook på kluster?

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

Lägga 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 hjälp av 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

Mer att läsa

Apache Spark jobb som skickas i HDInsight-kluster

Nästa steg

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