Sdílet prostřednictvím


Povolení výpisů paměti pro Apache Hadoop na HDInsight se systémem Linux

Výpisy z haldy obsahují snímek paměti aplikace, včetně hodnot proměnných v době, kdy byl výpis vytvořen. Jsou proto užitečné při diagnostice problémů, ke kterým dochází za běhu.

Služby

Výpisy paměti haldy můžete povolit pro následující služby:

  • Apache hcatalog – tempelton
  • Apache Hive – hiveserver2, metastore, derbyserver
  • mapreduce – jobhistoryserver
  • Apache yarn – resourcemanager, nodemanager, timelineserver
  • Apache hdfs – datanode, sekundární namenode, namenode

Můžete také povolit výpisy paměti haldy pro mapovací a redukční procesy běžící v HDInsight.

Pochopení konfigurace výpisu paměti haldy

Výpisy paměti haldy jsou povoleny tím, že při spuštění služby předáváme do JVM příslušné možnosti (někdy označované jako volby nebo parametry). U většiny služeb Apache Hadoop můžete upravit skript prostředí používaný ke spuštění služby a předat tyto možnosti.

V každém skriptu je export pro *_OPTS, který obsahuje možnosti předané prostředí JVM. Například ve skriptu hadoop-env.sh obsahuje řádek, který začíná možnostmi export HADOOP_NAMENODE_OPTS= pro službu NameNode.

Procesy mapování a redukce se mírně liší, protože tyto operace jsou podřízeným procesem služby MapReduce. Každý proces mapování nebo redukce se spustí v podřízeném kontejneru a existují dvě položky, které obsahují možnosti JVM. Obě obsaženy v mapred-site.xml:

  • mapreduce.admin.map.child.java.opts
  • mapreduce.admin.reduce.child.java.opts

Poznámka:

K úpravě skriptů i nastavení mapred-site.xml doporučujeme použít Apache Ambari , protože Ambari zpracovává změny v různých uzlech v clusteru. Konkrétní kroky najdete v části Použití Apache Ambari .

Povolení výpisů paměti haldy

Následující možnost povolí výpisy paměti haldy, když dojde k chybě OutOfMemoryError:

-XX:+HeapDumpOnOutOfMemoryError

Označuje + , že je tato možnost povolená. Výchozí hodnota je zakázaná.

Výstraha

Standardně nejsou pro služby Hadoop na HDInsight povolené výpisy paměti, protože soubory s výpisem paměti mohou být velké. Pokud je povolíte pro řešení potíží, nezapomeňte je po reprodukci problému a shromáždění souborů s výpisem paměti znovu zakázat.

Umístění výpisu

Výchozím umístěním souboru výpisu paměti je aktuální pracovní adresář. Umístění souboru můžete řídit pomocí následující možnosti:

-XX:HeapDumpPath=/path

Například použití -XX:HeapDumpPath=/tmp způsobí, že výpisy paměti budou uloženy v adresáři /tmp.

Skripty

Skript můžete aktivovat také v případě, že dojde k chybě OutOfMemoryError. Například aktivací oznámení, abyste věděli, že k chybě došlo. K aktivaci skriptu pro OutOfMemoryError použijte následující možnost:

-XX:OnOutOfMemoryError=/path/to/script

Poznámka:

Vzhledem k tomu, že Apache Hadoop je distribuovaný systém, musí být všechny použité skripty umístěny na všech uzlech v clusteru, na kterém služba běží.

Skript musí být také umístěn na místě přístupném účtem, pod kterým služba běží, a musí mít nastavena oprávnění ke spuštění. Můžete například chtít ukládat skripty /usr/local/bin a používat chmod go+rx /usr/local/bin/filename.sh je k udělení oprávnění ke čtení a spuštění.

Použití Apache Ambari

Pokud chcete upravit konfiguraci služby, postupujte následovně:

  1. Ve webovém prohlížeči navigujte na https://CLUSTERNAME.azurehdinsight.net, kde CLUSTERNAME je název vašeho clusteru.

  2. V seznamu vlevo vyberte oblast služby, kterou chcete upravit. Například HDFS. V oblasti uprostřed vyberte kartu Konfigurace .

    Obrázek webu Ambari s vybranou záložkou Konfigurace HDFS.

  3. Pomocí položky Filtrovat... zadejte opts. Zobrazí se pouze položky obsahující tento text.

    Seznam filtrovaných konfigurací Apache Ambari

  4. Vyhledejte položku *_OPTS pro službu, pro kterou chcete povolit výpisy paměti haldy, a přidejte možnosti, které chcete povolit. Na následujícím obrázku jsem přidal -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/ k položce HADOOP_NAMENODE_OPTS

    Apache Ambari hadoop-namenode-opts.

    Poznámka:

    Při povolování výpisů paměti haldy pro podřízený proces mapování nebo redukce vyhledejte pole nazvaná mapreduce.admin.map.child.java.opts a mapreduce.admin.reduce.child.java.opts.

    Pomocí tlačítka Uložit uložte změny. Můžete zadat krátkou poznámku popisující změny.

  5. Po použití změn se vedle jedné nebo více služeb zobrazí ikona Je vyžadován restart.

    restartujte požadovanou ikonu a tlačítko restartovat.

  6. Vyberte každou službu, která vyžaduje restartování, a pomocí tlačítka Akce službyzapněte režim údržby. Režim údržby zabraňuje vygenerování výstrah ze služby při restartování.

    Zapněte nabídku režimu údržby hdi.

  7. Jakmile povolíte režim údržby, použijte tlačítko Restartovat , aby služba restartovala všechny efekty.

    Apache Ambari restartujte všechny ovlivněné položky.

    Poznámka:

    Položky tlačítka Restartovat se můžou lišit pro jiné služby.

  8. Po restartování služeb pomocí tlačítka Akce službyvypněte režim údržby. Ambari obnoví monitorování výstrah pro službu.