Řešení potíží s Apache Sparkem s využitím služby Azure HDInsight

Seznamte se s hlavní problémy a jejich řešeními při práci s Apache Spark částmi v Apache Ambari.

Jak na clusterech nakonfigurovat aplikaci Apache Spark pomocí Apache Ambari?

Hodnoty konfigurace Sparku můžete vyladit, abyste se vyhnuli výjimce Apache Spark OutofMemoryError aplikace. Následující kroky ukazují výchozí konfigurační hodnoty Sparku v Azure HDInsight:

  1. Přihlaste se k Ambari na https://CLUSTERNAME.azurehdidnsight.net adrese pomocí přihlašovacích údajů clusteru. Na úvodní obrazovce se zobrazí řídicí panel s přehledem. Mezi HDInsight 3.6 a 4.0 jsou drobné rozdíly v vzhledu.

  2. Přejděte na Konfigurace Spark2. >

    Vyberte kartu Konfigurace.

  3. V seznamu konfigurací vyberte a rozbalte Custom-spark2-defaults.

  4. Vyhledejte nastavení hodnoty, které je potřeba upravit, například spark.executor.memory. V tomto případě je hodnota 9728m příliš vysoká.

    Výběr vlastních výchozích hodnot sparku

  5. Nastavte hodnotu na doporučené nastavení. Pro toto nastavení se doporučuje hodnota 2048 min.

  6. Uložte hodnotu a pak uložte konfiguraci. Vyberte Uložit.

    Změňte hodnotu na 2048 min.

    Napište poznámku o změnách konfigurace a pak vyberte Uložit.

    Zadejte poznámku o provedených změnách.

    Pokud nějaká konfigurace potřebuje pozornost, budete upozorněni. Všimněte si položek a pak vyberte Pokračovat Přesto.

    Vyberte Přesto pokračovat.

  7. Při každém uložení konfigurace se zobrazí výzva k restartování služby. Vyberte Restartovat.

    Vyberte restartovat.

    Potvrďte restartování.

    Vyberte Confirm Restart All (Potvrdit vše restartovat).

    Můžete zkontrolovat spuštěné procesy.

    Kontrola spuštěných procesů

  8. Můžete přidat konfigurace. V seznamu konfigurací vyberte Custom-spark2-defaults a pak vyberte Přidat vlastnost.

    Výběr možnosti přidat vlastnost

  9. Definujte novou vlastnost. Jednu vlastnost můžete definovat pomocí dialogového okna pro konkrétní nastavení, jako je například datový typ. Nebo můžete definovat více vlastností pomocí jedné definice na řádek.

    V tomto příkladu je vlastnost spark.driver.memory definovaná s hodnotou 4g.

    Definování nové vlastnosti

  10. Uložte konfiguraci a pak restartujte službu, jak je popsáno v krocích 6 a 7.

Tyto změny jsou v celém clusteru, ale při odeslání úlohy Spark je možné je přepsat.

Návody nakonfigurovat Apache Spark aplikaci pomocí Jupyter Notebook v clusterech?

V první buňce souboru Jupyter Notebook za direktivou configure zadejte konfigurace Sparku v platném formátu JSON. Podle potřeby změňte skutečné hodnoty:

Přidání konfigurace

Jak na clusterech nakonfigurovat aplikaci Apache Spark pomocí Apache Livy?

Odešlete aplikaci Spark do Livy pomocí klienta REST, jako je cURL. Použijte příkaz podobný následujícímu. Podle potřeby změňte skutečné hodnoty:

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

Jak na clusterech nakonfigurovat aplikaci Apache Spark pomocí příkazu spark-submit?

Spusťte prostředí spark-shell pomocí příkazu podobného následujícímu. Podle potřeby změňte skutečnou hodnotu konfigurací:

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

Další materiály ke čtení

Apache Spark úlohy v clusterech HDInsight

Další kroky

Pokud jste problém neviděli nebo ho nemůžete vyřešit, navštivte jeden z následujících kanálů, kde najdete další podporu: