Správa prostředků pro cluster Apache Spark ve službě Azure HDInsight

Zjistěte, jak získat přístup k rozhraním, jako je uživatelské rozhraní Apache Ambari , uživatelské rozhraní Apache Hadoop YARN a Server historie Sparku přidružený k vašemu clusteru Apache Spark a jak ladit konfiguraci clusteru pro optimální výkon.

Otevření serveru historie Sparku

Server historie Sparku je webové uživatelské rozhraní pro dokončené a spuštěné aplikace Spark. Jedná se o rozšíření webového uživatelského rozhraní Sparku. Úplné informace najdete v tématu Server historie Sparku.

Otevření uživatelského rozhraní Yarn

Uživatelské rozhraní YARN můžete použít k monitorování aplikací, které jsou aktuálně spuštěné v clusteru Spark.

  1. Na webu Azure Portal otevřete cluster Spark. Další informace najdete v tématu Seznam a zobrazení clusterů.

  2. Na řídicích panelech clusteru vyberte Yarn. Po zobrazení výzvy zadejte přihlašovací údaje správce clusteru Spark.

    Launch YARN UI.

    Tip

    Případně můžete také spustit uživatelské rozhraní YARN z uživatelského rozhraní Ambari. V uživatelském rozhraní Ambari přejděte na rychlé odkazy>YARN>v uživatelském rozhraní Active>Resource Manageru.

Optimalizace clusterů pro aplikace Spark

Tři klíčové parametry, které lze použít pro konfiguraci Sparku v závislosti na požadavcích aplikace, jsou spark.executor.instances, spark.executor.coresa spark.executor.memory. Exekutor je proces spuštěný pro aplikaci Spark. Běží na pracovním uzlu a zodpovídá za provádění úkolů pro aplikaci. Výchozí počet exekutorů a velikost exekutorů pro každý cluster se vypočítá na základě počtu pracovních uzlů a velikosti pracovního uzlu. Tyto informace jsou uložené v spark-defaults.conf hlavních uzlech clusteru.

Tyto tři parametry konfigurace je možné nakonfigurovat na úrovni clusteru (pro všechny aplikace, které běží v clusteru), nebo je možné zadat také pro každou jednotlivou aplikaci.

Změna parametrů pomocí uživatelského rozhraní Ambari

  1. V uživatelském rozhraní Ambari přejděte na konfigurace>Spark2>– vlastní výchozí hodnoty Spark2.

    Set parameters using Ambari custom.

  2. Výchozí hodnoty jsou vhodné pro souběžné spouštění čtyř aplikací Spark v clusteru. Tyto hodnoty můžete změnit z uživatelského rozhraní, jak je znázorněno na následujícím snímku obrazovky:

    Set parameters using Ambari.

  3. Výběrem možnosti Uložit uložte změny konfigurace. V horní části stránky se zobrazí výzva k restartování všech ovlivněných služeb. Vyberte Restartovat.

    Restart services.

Změna parametrů pro aplikaci spuštěnou v Aplikaci Jupyter Notebook

U aplikací spuštěných v aplikaci Jupyter Notebook můžete pomocí %%configure magie provést změny konfigurace. V ideálním případě je nutné provést tyto změny na začátku aplikace před spuštěním první buňky kódu. Tím se zajistí, že se konfigurace použije v relaci Livy při jejím vytvoření. Pokud chcete v aplikaci změnit konfiguraci v pozdější fázi, musíte použít -f parametr. Tím se ale ztratí veškerý pokrok v aplikaci.

Následující fragment kódu ukazuje, jak změnit konfiguraci aplikace spuštěné v Jupyteru.

%%configure
{"executorMemory": "3072M", "executorCores": 4, "numExecutors":10}

Parametry konfigurace musí být předány jako řetězec JSON a musí být na dalším řádku za magií, jak je znázorněno v ukázkovém sloupci.

Změna parametrů pro aplikaci odeslanou pomocí spark-submit

Následující příkaz je příkladem změny parametrů konfigurace dávkové aplikace, která je odeslána pomocí spark-submit.

spark-submit --class <the application class to execute> --executor-memory 3072M --executor-cores 4 –-num-executors 10 <location of application jar file> <application parameters>

Změna parametrů pro aplikaci odeslanou pomocí cURL

Následující příkaz je příkladem toho, jak změnit parametry konfigurace pro dávkovou aplikaci, která je odeslána pomocí cURL.

curl -k -v -H 'Content-Type: application/json' -X POST -d '{"file":"<location of application jar file>", "className":"<the application class to execute>", "args":[<application parameters>], "numExecutors":10, "executorMemory":"2G", "executorCores":5' localhost:8998/batches

Poznámka:

Zkopírujte soubor JAR do účtu úložiště clusteru. Nekopírujte soubor JAR přímo do hlavního uzlu.

Změna těchto parametrů na serveru Spark Thrift

Spark Thrift Server poskytuje přístup JDBC/ODBC ke clusteru Spark a používá se ke službě dotazů Spark SQL. Nástroje, jako jsou Power BI, Tableau a tak dále, používají protokol ODBC ke komunikaci se Spark Thrift Serverem ke spouštění dotazů Spark SQL jako aplikace Spark. Při vytvoření clusteru Spark se spustí dvě instance serveru Spark Thrift, jedna na každém hlavním uzlu. Každý server Spark Thrift je viditelný jako aplikace Spark v uživatelském rozhraní YARN.

Spark Thrift Server používá přidělení dynamického exekutoru Sparku spark.executor.instances , a proto se nepoužívá. Místo toho Spark Thrift Server používá spark.dynamicAllocation.maxExecutors a spark.dynamicAllocation.minExecutors určuje počet exekutorů. Parametry konfigurace spark.executor.coresa spark.executor.memory slouží k úpravě velikosti exekutoru. Tyto parametry můžete změnit, jak je znázorněno v následujících krocích:

  • Rozbalte kategorii Advanced spark2-thrift-sparkconf a aktualizujte parametry spark.dynamicAllocation.maxExecutorsa spark.dynamicAllocation.minExecutors.

    Configure Spark thrift server.

  • Rozbalte kategorii Custom spark2-thrift-sparkconf a aktualizujte parametry spark.executor.coresa spark.executor.memory.

    Configure Spark thrift server parameter.

Změna paměti ovladače serveru Spark Thrift

Paměť ovladače serveru Spark Thrift je nakonfigurovaná na 25 % velikosti paměti RAM hlavního uzlu za předpokladu, že celková velikost paměti RAM hlavního uzlu je větší než 14 GB. Pomocí uživatelského rozhraní Ambari můžete změnit konfiguraci paměti ovladače, jak je znázorněno na následujícím snímku obrazovky:

V uživatelském rozhraní Ambari přejděte do konfigurace>Spark2>Advanced spark2-env. Potom zadejte hodnotu pro spark_thrift_cmd_opts.

Uvolnění prostředků clusteru Spark

Z důvodu dynamického přidělování Sparku jsou jedinými prostředky, které využívají server thrift, prostředky pro oba hlavní servery aplikací. Pokud chcete tyto prostředky uvolnit, musíte zastavit služby Serveru Thrift spuštěné v clusteru.

  1. V uživatelském rozhraní Ambari v levém podokně vyberte Spark2.

  2. Na další stránce vyberte Servery Spark2 Thrift.

    Restart thrift server1.

  3. Měli byste vidět dva hlavní uzly, na kterých běží Server Spark2 Thrift. Vyberte jeden z hlavních uzlů.

    Restart thrift server2.

  4. Na další stránce jsou uvedeny všechny služby spuštěné na hlavním uzlu. V seznamu vyberte rozevírací tlačítko vedle Spark2 Thrift Serveru a pak vyberte Zastavit.

    Restart thrift server3.

  5. Tento postup opakujte i na druhém hlavním uzlu.

Restartujte službu Jupyter.

Spusťte webové uživatelské rozhraní Ambari, jak je znázorněno na začátku článku. V levém navigačním podokně vyberte Jupyter, vyberte Akce služby a pak vyberte Restartovat vše. Tím se spustí služba Jupyter na všech hlavních uzly.

Restart Jupyter.

Sledování prostředků

Spusťte uživatelské rozhraní Yarn, jak je znázorněno na začátku článku. V tabulce Metriky clusteru v horní části obrazovky zkontrolujte hodnoty sloupců Využití paměti a Celkový počet paměti. Pokud jsou dvě hodnoty zavřené, nemusí existovat dostatek prostředků pro spuštění další aplikace. Totéž platí pro sloupce Celkové využití virtuálních jader a virtuálních jader. V hlavním zobrazení také platí, že pokud je aplikace ve stavu AKCEPTOVANÁ a nepřechází do stavu SPUŠTĚNO ani SELHÁNÍ , může to také značit, že nemá dostatek prostředků ke spuštění.

Resource Limit.

Ukončení spouštění aplikací

  1. V uživatelském rozhraní Yarn na levém panelu vyberte Spuštěno. V seznamu spuštěných aplikací určete aplikaci, která se má zabít, a vyberte ID.

    Kill App1.

  2. V pravém horním rohu vyberte Možnost Ukončovat aplikaci a pak vyberte OK.

    Kill App2.

Viz také

Pro datové analytiky

Pro vývojáře Apache Sparku