Optimalizace Apache Pigu pomocí Apache Ambari ve službě Azure HDInsight

Apache Ambari je webové rozhraní pro správu a monitorování clusterů HDInsight. Úvod do webového uživatelského rozhraní Ambari najdete v tématu Správa clusterů HDInsight pomocí webového uživatelského rozhraní Apache Ambari.

Vlastnosti Apache Pigu je možné upravit z webového uživatelského rozhraní Ambari a ladit dotazy Pig. Úprava vlastností Pig z Ambari přímo upraví vlastnosti Pig v /etc/pig/2.4.2.0-258.0/pig.properties souboru.

  1. Chcete-li upravit vlastnosti Pigu, přejděte na kartu Konfigurace pig a potom rozbalte podokno Upřesnit vlastnosti pig-properties.

  2. Najděte, odkomentujte a změňte hodnotu vlastnosti, kterou chcete upravit.

  3. Novou hodnotu uložíte výběrem možnosti Uložit v pravém horním rohu okna. Některé vlastnosti mohou vyžadovat restartování služby.

    Advanced Apache pig properties.

Poznámka:

Všechna nastavení na úrovni relace přepíší hodnoty vlastností v pig.properties souboru.

Ladění prováděcího modulu

K dispozici jsou dva prováděcí moduly pro spouštění skriptů Pig: MapReduce a Tez. Tez je optimalizovaný modul a je mnohem rychlejší než MapReduce.

  1. Chcete-li upravit prováděcí modul, v podokně Upřesnit vlastnosti pig-properties vyhledejte vlastnost exectype.

  2. Výchozí hodnota je MapReduce. Změňte ho na Tez.

Povolení místního režimu

Podobně jako Hive se místní režim používá k urychlení úloh s relativně menšími objemy dat.

  1. Pokud chcete povolit místní režim, nastavte pig.auto.local.enabled hodnotu true. Výchozí hodnota je false.

  2. Úlohy s velikostí vstupních dat menší než pig.auto.local.input.maxbytes hodnota vlastnosti se považují za malé úlohy. Výchozí hodnota je 1 GB.

Kopírování mezipaměti JAR uživatele

Pig zkopíruje soubory JAR vyžadované funkcemi definovanými uživatelem do distribuované mezipaměti, aby je bylo možné zpřístupnit pro uzly úloh. Tyto jary se často nemění. Pokud je tato možnost povolená, umožňuje, pig.user.cache.enabled aby se soubory JAR umístily do mezipaměti, aby je znovu používaly pro úlohy spuštěné stejným uživatelem. Výsledkem tohoto nastavení je menší zvýšení výkonu úlohy.

  1. Pokud chcete povolit, nastavte pig.user.cache.enabled hodnotu true. Výchozí hodnotou je hodnota false.

  2. Pokud chcete nastavit základní cestu souborů JAR uložených v mezipaměti, nastavte pig.user.cache.location na základní cestu. Výchozí hodnota je /tmp.

Optimalizace výkonu pomocí nastavení paměti

Následující nastavení paměti vám může pomoct optimalizovat výkon skriptu Pig.

  • pig.cachedbag.memusage: Množství paměti přidělené sáčku. Taška je kolekce řazených kolekcí členů. Řazená kolekce členů je uspořádaná sada polí a pole je část dat. Pokud jsou data v sáčku nad danou pamětí, přesahují se na disk. Výchozí hodnota je 0,2, což představuje 20 procent dostupné paměti. Tato paměť se sdílí napříč všemi taškami v aplikaci.

  • pig.spill.size.threshold: Tašky větší než tato prahová hodnota velikosti přelití (v bajtech) se přelijí na disk. Výchozí hodnota je 5 MB.

Komprese dočasných souborů

Pig během provádění úlohy generuje dočasné soubory. Komprese dočasných souborů vede ke zvýšení výkonu při čtení nebo zápisu souborů na disk. K komprimaci dočasných souborů je možné použít následující nastavení.

  • pig.tmpfilecompression: Pokud je true, povolí dočasnou kompresi souborů. Výchozí hodnota je false.

  • pig.tmpfilecompression.codec: Komprimační kodek, který se má použít ke komprimaci dočasných souborů. Doporučené kodeky komprese jsou LZO a Snappy pro nižší využití procesoru.

Povolení kombinování rozdělení

Pokud je tato možnost povolená, zkombinují se malé soubory pro méně úkolů mapování. Toto nastavení zlepšuje efektivitu úloh s mnoha malými soubory. Pokud chcete povolit, nastavte pig.noSplitCombination hodnotu true. Výchozí hodnota je false.

Ladění mapovačů

Počet mapovačů je řízen úpravou vlastnosti pig.maxCombinedSplitSize. Tato vlastnost určuje velikost dat, která se mají zpracovat jedním úkolem mapování. Výchozí hodnota je výchozí velikost bloku systému souborů. Zvýšení této hodnoty vede k nižšímu počtu úkolů mapperu.

Ladění reduktorů

Počet reduktorů se vypočítá na základě parametru pig.exec.reducers.bytes.per.reducer. Parametr určuje počet bajtů zpracovaných na redukci ve výchozím nastavení 1 GB. Chcete-li omezit maximální počet reduktorů, nastavte pig.exec.reducers.max vlastnost ve výchozím nastavení 999.

Další kroky