Ladění výkonu Azure Data Lake Storage Gen1
Data Lake Storage Gen1 podporuje vysokou propustnost pro analýzy náročné na vstupně-výstupní operace a přesun dat. V Data Lake Storage Gen1 je pro dosažení nejlepšího výkonu důležité používat veškerou dostupnou propustnost – množství dat, která se dají číst nebo zapisovat za sekundu. Toho lze dosáhnout provedením co největšího počtu čtení a zápisů paralelně.
Data Lake Storage Gen1 můžete škálovat tak, aby poskytovala potřebnou propustnost pro všechny analytické scénáře. Ve výchozím nastavení poskytuje účet Data Lake Storage Gen1 automaticky dostatečnou propustnost pro splnění požadavků široké kategorie případů použití. V případech, kdy zákazníci narazí na výchozí limit, je možné účet Data Lake Storage Gen1 nakonfigurovat tak, aby poskytoval větší propustnost, a to kontaktováním podpory Microsoftu.
Přijímání dat
Při příjmu dat ze zdrojového systému do Data Lake Storage Gen1 je důležité vzít v úvahu, že kritickým bodem může být zdrojový hardware, hardware zdrojové sítě a síťové připojení k Data Lake Storage Gen1.
Je důležité zajistit, aby přesun dat nebyl ovlivněn těmito faktory.
Zdrojový hardware
Ať už používáte místní počítače nebo virtuální počítače v Azure, měli byste pečlivě vybrat příslušný hardware. U zdrojového hardwaru disku upřednostněte disky SSD před pevnými disky a vyberte hardware disku s rychlejšími disky. U zdrojového síťového hardwaru použijte nejrychlejší možné síťové karty. V Azure doporučujeme virtuální počítače Azure D14 s odpovídajícím výkonem diskového a síťového hardwaru.
Síťové připojení k Data Lake Storage Gen1
Kritickým bodem může být někdy síťové připojení mezi zdrojovými daty a Data Lake Storage Gen1. Pokud jsou zdrojová data místní, zvažte použití vyhrazeného propojení s Azure ExpressRoute . Pokud jsou zdrojová data v Azure, bude výkon nejlepší, když jsou data ve stejné oblasti Azure jako účet Data Lake Storage Gen1.
Konfigurace nástrojů pro příjem dat pro maximální paralelizaci
Jakmile vyřešíte problém se zdrojovým hardwarem a připojením k síti, můžete nakonfigurovat nástroje pro příjem dat. Následující tabulka shrnuje klíčová nastavení pro několik oblíbených nástrojů pro příjem dat a obsahuje podrobné články o ladění výkonu. Další informace o tom, který nástroj použít pro váš scénář, najdete v tomto článku.
Nástroj | Nastavení | Další podrobnosti |
---|---|---|
PowerShell | PerFileThreadCount, ConcurrentFileCount | Odkaz |
AdlCopy | Jednotky azure Data Lake Analytics | Odkaz |
DistCp | -m (mapovač) | Odkaz |
Azure Data Factory | paralelní rozsahy | Odkaz |
Sqoop | fs.azure.block.size, -m (mapovač) | Odkaz |
Strukturování datové sady
Když jsou data uložená v Data Lake Storage Gen1, ovlivňuje výkon velikost souboru, počet souborů a struktura složek. Následující část popisuje osvědčené postupy v těchto oblastech.
Velikost souboru
Analytické moduly, jako je HDInsight a Azure Data Lake Analytics obvykle mají režijní náklady na jednotlivé soubory. Pokud ukládáte data tolik malých souborů, může to negativně ovlivnit výkon.
Obecně platí, že kvůli lepšímu výkonu uspořádejte data do větších souborů. Obecně platí, že datové sady uspořádáte do souborů o rozměrech 256 MB nebo větších. V některých případech, jako jsou obrázky a binární data, není možné je zpracovávat paralelně. V těchto případech se doporučuje uchovávat jednotlivé soubory do 2 GB.
Někdy mají datové kanály omezenou kontrolu nad nezpracovaná data, která obsahují velké množství malých souborů. Doporučuje se mít proces "vaření", který generuje větší soubory, které se použijí pro podřízené aplikace.
Uspořádání dat časových řad do složek
V případě úloh Hive a ADLA může vyněžování oddílů dat časových řad pomoct některým dotazům číst jenom podmnožinu dat, což zvyšuje výkon.
Kanály, které ingestují data časových řad, často umisťují soubory se strukturovaným pojmenováním souborů a složek. Následuje běžný příklad dat strukturovaných podle data: \DataSet\YYYY\MM\DD\datafile_YYYY_MM_DD.tsv.
Všimněte si, že informace datetime se zobrazí jako složky i v názvu souboru.
Pro datum a čas je běžný vzor: \DataSet\YYYY\MM\DD\HH\mm\datafile_YYYY_MM_DD_HH_mm.tsv.
Opět platí, že volba, kterou provedete se složkou a uspořádáním souborů, by měla být optimalizovaná pro větší velikosti souborů a přiměřený počet souborů v každé složce.
Optimalizace úloh náročných na vstupně-výstupní operace v úlohách Hadoop a Spark ve službě HDInsight
Úlohy spadají do jedné z následujících tří kategorií:
- Náročné na procesor. Tyto úlohy mají dlouhou dobu výpočtu s minimálním počtem vstupně-výstupních operací. Mezi příklady patří úlohy strojového učení a zpracování přirozeného jazyka.
- Náročné na paměť. Tyto úlohy využívají velké množství paměti. Mezi příklady patří PageRank a úlohy analýzy v reálném čase.
- Náročné na vstupně-výstupní operace. Tyto úlohy tráví většinu času prováděním vstupně-výstupních operací. Běžným příkladem je úloha kopírování, která provádí pouze operace čtení a zápisu. Mezi další příklady patří úlohy přípravy dat, které čtou řadu dat, provádějí určité transformace dat a pak je zapisují zpět do úložiště.
Následující pokyny platí pouze pro úlohy náročné na vstupně-výstupní operace.
Obecné aspekty clusteru HDInsight
- Verze HDInsight. Pro zajištění nejlepšího výkonu použijte nejnovější verzi služby HDInsight.
- Regiony. Účet Data Lake Storage Gen1 umístěte do stejné oblasti jako cluster HDInsight.
Cluster HDInsight se skládá ze dvou hlavních a některých pracovních uzlů. Každý pracovní uzel poskytuje určitý počet jader a paměti, který je určen typem virtuálního počítače. Při spuštění úlohy je YARN vyjednavačem prostředků, který přiděluje dostupnou paměť a jádra k vytváření kontejnerů. Každý kontejner spouští úlohy potřebné k dokončení úlohy. Kontejnery běží paralelně, aby rychle zpracovávaly úlohy. Proto se výkon zlepší spuštěním co nejvíce paralelních kontejnerů.
V rámci clusteru HDInsight existují tři vrstvy, které je možné vyladit tak, aby zvýšily počet kontejnerů a využily veškerou dostupnou propustnost.
- Fyzická vrstva
- Vrstva YARN
- Vrstva úloh
Fyzická vrstva
Spusťte cluster s více uzly nebo virtuálními počítači větší velikosti. Větší cluster vám umožní spouštět více kontejnerů YARN, jak je znázorněno na obrázku níže.
Používejte virtuální počítače s větší šířkou pásma sítě. Šířka pásma sítě může být kritickým bodem, pokud je menší šířka pásma sítě než Data Lake Storage Gen1 propustnost. Různé virtuální počítače budou mít různou šířku pásma sítě. Zvolte typ virtuálního počítače, který má největší možnou šířku pásma sítě.
Vrstva YARN
Používejte menší kontejnery YARN. Zmenšete velikost jednotlivých kontejnerů YARN, abyste vytvořili více kontejnerů se stejným množstvím prostředků.
V závislosti na vašich úlohách bude vždy existovat minimální velikost kontejneru YARN, která je potřeba. Pokud vyberete příliš malý kontejner, dojde u úloh k problémům s nedostatkem paměti. Kontejnery YARN by obvykle neměly být menší než 1 GB. Běžně se zobrazují 3GB kontejnery YARN. U některých úloh můžete potřebovat větší kontejnery YARN.
Zvyšte počet jader na kontejner YARN. Zvyšte počet jader přidělených každému kontejneru, abyste zvýšili počet paralelních úloh, které běží v každém kontejneru. To funguje pro aplikace, jako je Spark, které spouštějí více úloh na kontejner. Pro aplikace, jako je Hive, které spouštějí jedno vlákno v každém kontejneru, je lepší mít více kontejnerů než více jader na kontejner.
Vrstva úloh
Použijte všechny dostupné kontejnery. Nastavte počet úkolů tak, aby byl stejný nebo větší než počet dostupných kontejnerů, aby se používaly všechny prostředky.
Neúspěšné úkoly jsou nákladné. Pokud má každý úkol velké množství dat ke zpracování, pak selhání úlohy vede k nákladnému opakování. Proto je lepší vytvořit více úkolů, z nichž každá zpracovává malé množství dat.
Kromě výše uvedených obecných pokynů má každá aplikace k dispozici různé parametry, které je možné pro danou konkrétní aplikaci vyladit. Následující tabulka uvádí některé parametry a odkazy, které vám pomůžou začít s laděním výkonu jednotlivých aplikací.
Úloha | Parametr pro nastavení úkolů |
---|---|
Spark ve službě HDInsight |
|
Hive ve službě HDInsight |
|
MapReduce ve službě HDInsight |
|
Storm v HDInsightu |
|