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 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.
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.
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 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.
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 |
|
Hive on HDInsight |
|
MapReduce on HDInsight |
|
Storm on HDInsight |
|