Share via


Azure Data Lake Storage Gen1 hangolása a teljesítményhez

Data Lake Storage Gen1 támogatja a nagy átviteli sebességet az I/O-igényes elemzésekhez és az adatáthelyezési műveletekhez. Az Data Lake Storage Gen1 az összes elérhető átviteli sebesség – a másodpercenként olvasható vagy írható adatok mennyisége – használata fontos a legjobb teljesítmény eléréséhez. Ez úgy érhető el, hogy a lehető legtöbb olvasást és írást párhuzamosan hajtja végre.

Data Lake Storage Gen1 teljesítmény

Data Lake Storage Gen1 méretezhető, hogy minden elemzési forgatókönyvhöz biztosítsa a szükséges átviteli sebességet. Alapértelmezés szerint a Data Lake Storage Gen1-fiók automatikusan elegendő átviteli sebességet biztosít a használati esetek széles körének igényeinek kielégítéséhez. Azokban az esetekben, amikor az ügyfelek túllépik az alapértelmezett korlátot, a Data Lake Storage Gen1 fiók úgy konfigurálható, hogy nagyobb átviteli sebességet biztosítson a Microsoft ügyfélszolgálatához fordulva.

Adatfeldolgozás

A forrásrendszerből a Data Lake Storage Gen1 való adatbetöltéskor fontos figyelembe venni, hogy a forráshardver, a forráshálózati hardver és a Data Lake Storage Gen1 hálózati kapcsolata lehet a szűk keresztmetszet.

Diagram, amely azt mutatja, hogy a forráshardver, a forráshálózati hardver és a hálózati kapcsolat Data Lake Storage Gen1 lehet a szűk keresztmetszet.

Fontos, hogy az adatáthelyezési tényezők ne legyenek hatással az adatáthelyezési tényezőkre.

Forráshardver

Akár helyszíni gépeket, akár virtuális gépeket használ az Azure-ban, gondosan válassza ki a megfelelő hardvert. A forráslemez hardvere esetében előnyben részesítse az SSD-ket a HDD-knél, és válassza ki a gyorsabb orsókkal rendelkező lemezhardvereket. A forráshálózati hardverek esetében használja a lehető leggyorsabb hálózati adaptereket. Az Azure-ban azokat az Azure D14 virtuális gépeket javasoljuk, amelyek megfelelő teljesítményű lemezzel és hálózati hardverekkel rendelkeznek.

Hálózati kapcsolat Data Lake Storage Gen1

A forrásadatok és a Data Lake Storage Gen1 közötti hálózati kapcsolat néha szűk keresztmetszet lehet. Ha a forrásadatok helyszíniek, fontolja meg egy dedikált hivatkozás használatát az Azure ExpressRoute-tal . Ha a forrásadatok az Azure-ban találhatóak, a teljesítmény akkor lesz a legjobb, ha az adatok ugyanabban az Azure-régióban találhatóak, mint a Data Lake Storage Gen1-fiók.

Adatbetöltési eszközök konfigurálása a maximális párhuzamosításhoz

Miután elhárította a forráshardver és a hálózati kapcsolat szűk keresztmetszeteit, készen áll a betöltési eszközök konfigurálására. Az alábbi táblázat összefoglalja a népszerű betöltési eszközök fő beállításait, és részletes teljesítményhangolási cikkeket tartalmaz hozzájuk. Ha többet szeretne megtudni arról, hogy melyik eszközt használja a forgatókönyvéhez, tekintse meg ezt a cikket.

Eszköz Beállítások További részletek
PowerShell PerFileThreadCount, ConcurrentFileCount Hivatkozás
AdlCopy Azure Data Lake Analytics egységek Hivatkozás
DistCp -m (mapper) Hivatkozás
Azure Data Factory párhuzamos másolatok Hivatkozás
Sqoop fs.azure.block.size, -m (mapper) Hivatkozás

Az adathalmaz felépítése

Ha az adatokat Data Lake Storage Gen1 tárolja, a fájlméret, a fájlok száma és a mappastruktúra hatással van a teljesítményre. A következő szakasz az ajánlott eljárásokat ismerteti ezekben a területeken.

Fájlméret

Az olyan elemzőmotorok, mint a HDInsight és az Azure Data Lake Analytics általában fájlonkénti többletterheléssel rendelkeznek. Ha az adatokat annyi kis méretű fájlban tárolja, az negatív hatással lehet a teljesítményre.

A jobb teljesítmény érdekében általában nagyobb méretű fájlokba rendezheti az adatokat. A hüvelykujj szabálya, hogy az adathalmazokat 256 MB-os vagy annál nagyobb fájlokba rendezze. Bizonyos esetekben, mint például a képek és a bináris adatok, nem lehet párhuzamosan feldolgozni őket. Ezekben az esetekben javasoljuk, hogy az egyes fájlokat 2 GB alatt tartsa.

Az adatfolyamok néha korlátozottan szabályozhatják a sok kis fájllal rendelkező nyers adatokat. Javasoljuk, hogy legyen egy "főzési" folyamat, amely nagyobb fájlokat hoz létre az alsóbb rétegbeli alkalmazásokhoz.

Idősoradatok rendezése mappákban

Hive- és ADLA-számítási feladatok esetén az idősoros adatok partícióinak törlése segíthet egyes lekérdezéseknek az adatok csak egy részhalmazának olvasásában, ami javítja a teljesítményt.

Azok a folyamatok, amelyek idősorozat-adatokat betöltenek, gyakran strukturált elnevezéssel helyezik el fájljaikat a fájlokhoz és mappákhoz. Az alábbiakban egy gyakori példát láthatunk a dátum szerint strukturált adatokra: \DataSet\YYYY\MM\DD\datafile_YYYY_MM_DD.tsv.

Figyelje meg, hogy a datetime-adatok mappákként és fájlnévként is megjelennek.

A dátum és az idő esetében a következő egy gyakori minta: \DataSet\YYYY\MM\DD\HH\mm\datafile_YYYY_MM_DD_HH_mm.tsv.

A mappa- és fájlszervezettel kapcsolatos döntésnek ismét optimalizálnia kell a nagyobb fájlméretekhez és az egyes mappákban található fájlok ésszerű számához.

Az I/O-igényes feladatok optimalizálása a Hadoop- és Spark-számítási feladatokon a HDInsighton

A feladatok a következő három kategória egyikébe tartoznak:

  • Processzorigényes. Ezek a feladatok hosszú számítási idővel rendelkeznek, minimális I/O-idő mellett. Ilyenek például a gépi tanulás és a természetes nyelvi feldolgozási feladatok.
  • Memóriaigényes. Ezek a feladatok sok memóriát használnak. Ilyenek például a PageRank és a valós idejű elemzési feladatok.
  • I/O-igényes. Ezek a feladatok az idejük nagy részét I/O-kkal töltik. Gyakori példa egy másolási feladat, amely csak olvasási és írási műveleteket hajt végre. Ilyenek például az adat-előkészítési feladatok, amelyek számos adatot olvasnak be, adatátalakítást hajtanak végre, majd visszaírják az adatokat az áruházba.

Az alábbi útmutató csak az I/O-igényes feladatokra vonatkozik.

A HDInsight-fürtök általános szempontjai

  • HDInsight-verziók. A legjobb teljesítmény érdekében használja a HDInsight legújabb kiadását.
  • Régiók. Helyezze a Data Lake Storage Gen1 fiókot ugyanabban a régióban, mint a HDInsight-fürt.

A HDInsight-fürtök két átjárócsomópontból és néhány munkavégző csomópontból állnak. Minden munkavégző csomópont adott számú magot és memóriát biztosít, amelyet a virtuális gép típusa határoz meg. Feladat futtatásakor a YARN az erőforrás-tárgyaló, amely lefoglalja a tárolók létrehozásához rendelkezésre álló memóriát és magokat. Minden tároló futtatja a feladat elvégzéséhez szükséges feladatokat. A tárolók párhuzamosan futnak a feladatok gyors feldolgozásához. Ezért a teljesítmény a lehető legtöbb párhuzamos tároló futtatásával javul.

A HDInsight-fürtön belül három réteg van, amelyek hangolhatók a tárolók számának növelése és az összes rendelkezésre álló átviteli sebesség használata érdekében.

  • Fizikai réteg
  • YARN-réteg
  • Számítási feladat rétege

Fizikai réteg

Fürt futtatása több csomóponttal és/vagy nagyobb méretű virtuális géppel. Egy nagyobb fürt lehetővé teszi további YARN-tárolók futtatását az alábbi képen látható módon.

Diagram, amely további YARN-tárolók használatát mutatja be.

Használjon nagyobb hálózati sávszélességű virtuális gépeket. A hálózati sávszélesség mennyisége szűk keresztmetszet lehet, ha kisebb a hálózati sávszélesség, mint Data Lake Storage Gen1 átviteli sebesség. A különböző virtuális gépek eltérő hálózati sávszélesség-méretekkel rendelkeznek. Válasszon olyan virtuálisgép-típust, amely a lehető legnagyobb hálózati sávszélességet adja meg.

YARN-réteg

Használjon kisebb YARN-tárolókat. Csökkentse az egyes YARN-tárolók méretét, hogy több, azonos mennyiségű erőforrással rendelkező tárolót hozzon létre.

A kisebb YARN-tárolók használatát bemutató ábra.

A számítási feladattól függően mindig szükség lesz egy minimális YARN-tárolóméretre. Ha túl kicsi tárolót választ, a feladatok memórián kívüli problémákba ütköznek. A YARN-tárolók általában nem lehetnek kisebbek 1 GB-nál. Gyakori, hogy 3 GB YARN-tárolót lát. Egyes számítási feladatokhoz nagyobb YARN-tárolókra lehet szükség.

Magok növelése YARN-tárolónként. Növelje az egyes tárolókhoz lefoglalt magok számát az egyes tárolókban futó párhuzamos feladatok számának növeléséhez. Ez olyan alkalmazások esetében működik, mint a Spark, amelyek tárolónként több feladatot futtatnak. Az olyan alkalmazások esetében, mint a Hive, amelyek minden tárolóban egyetlen szálat futtatnak, jobb, ha több tárolóval rendelkeznek, nem pedig tárolónként több maggal.

Számítási feladat rétege

Használja az összes rendelkezésre álló tárolót. Állítsa a tevékenységek számát úgy, hogy az egyenlő vagy nagyobb legyen, mint az elérhető tárolók száma, hogy minden erőforrást használjon.

Az összes elérhető tároló használatát bemutató ábra.

A sikertelen tevékenységek költségesek. Ha minden tevékenységhez nagy mennyiségű adatot kell feldolgozni, akkor a feladat meghiúsulása költséges újrapróbálkozáshoz vezet. Ezért jobb, ha több feladatot hoz létre, amelyek mindegyike kis mennyiségű adatot dolgoz fel.

A fenti általános irányelveken kívül minden alkalmazás különböző paraméterekkel rendelkezik, amelyek az adott alkalmazáshoz hangolhatók. Az alábbi táblázat felsorol néhány paramétert és hivatkozást az egyes alkalmazások teljesítményhangolásának első lépéseihez.

Számítási feladat A tevékenységek beállításának paramétere
Spark on HDInsight
  • Szám-végrehajtók
  • Végrehajtó memóriája
  • Végrehajtó magok
Hive on HDInsight
  • hive.tez.container.size
MapReduce on HDInsight
  • Mapreduce.map.memory
  • Mapreduce.job.maps
  • Mapreduce.reduce.memory
  • Mapreduce.job.reduces
Storm on HDInsight
  • Feldolgozói folyamatok száma
  • Spout végrehajtópéldányok száma
  • A bolt végrehajtó példányainak száma
  • Spout-tevékenységek száma
  • Csavarfeladatok száma

Lásd még