Teljesítményhangolási útmutató a HDInsighton és Azure Data Lake Storage Gen1-en futó Hive-hez
Az alapértelmezett beállítások úgy lettek beállítva, hogy jó teljesítményt nyújtsanak számos különböző használati esetben. I/O-igényes lekérdezések esetén a Hive hangolható, hogy jobb teljesítményt nyújtson Azure Data Lake Storage Gen1 használatával.
Előfeltételek
- Azure-előfizetés. Lásd: Ingyenes Azure-fiók létrehozása.
- Egy Data Lake Storage Gen1 fiók. A létrehozással kapcsolatos útmutatásért lásd: Első lépések az 1. generációs Azure Data Lake Storage
- Azure HDInsight-fürt egy Data Lake Storage Gen1-fiókhoz való hozzáféréssel. Lásd: HDInsight-fürt létrehozása Data Lake Storage Gen1. Győződjön meg arról, hogy engedélyezi a távoli asztalt a fürthöz.
- A Hive futtatása a HDInsighton. A Hive-feladatok HDInsighton való futtatásáról további információt a Hive használata HDInsighton című témakörben talál.
- Teljesítményhangolási irányelvek Data Lake Storage Gen1. Az általános teljesítményfogalmakért lásd: Data Lake Storage Gen1 teljesítményhangolási útmutató
Paraméterek
A jobb Data Lake Storage Gen1 teljesítmény érdekében az alábbi legfontosabb beállításokat érdemes hangolni:
hive.tez.container.size – az egyes feladatok által felhasznált memória mennyisége
tez.grouping.min-size – az egyes leképezők minimális mérete
tez.grouping.max-size – az egyes leképezők maximális mérete
hive.exec.reducer.bytes.per.reducer – az egyes csökkentők mérete
hive.tez.container.size – A tároló mérete határozza meg, hogy mennyi memória áll rendelkezésre az egyes feladatokhoz. Ez a Fő bemenet az egyidejűség szabályozásához a Hive-ben.
tez.grouping.min-size – Ez a paraméter lehetővé teszi az egyes leképezők minimális méretének beállítását. Ha a Tez által kiválasztott leképezők száma kisebb, mint ennek a paraméternek az értéke, akkor a Tez az itt megadott értéket fogja használni.
tez.grouping.max-size – A paraméter lehetővé teszi az egyes leképezők maximális méretének beállítását. Ha a Tez által kiválasztott leképezők száma nagyobb, mint ennek a paraméternek az értéke, akkor a Tez az itt megadott értéket fogja használni.
hive.exec.reducer.bytes.per.reducer – Ez a paraméter az egyes szűkítők méretét állítja be. Alapértelmezés szerint minden redukátor 256 MB.
Útmutató
Hive.exec.reducer.bytes.per.reducer beállítása – Az alapértelmezett érték jól működik, ha az adatok tömörítetlenek. A tömörített adatok esetében csökkentenie kell a redukátor méretét.
Hive.tez.container.size beállítása – Minden csomópontban a yarn.nodemanager.resource.memory-mb adja meg a memóriát, és alapértelmezés szerint helyesen kell beállítani a HDI-fürtön. A megfelelő memória YARN-ban való beállításával kapcsolatos további információkért lásd ezt a bejegyzést.
Az I/O-igényes számítási feladatok a Tez-tároló méretének csökkentésével élvezhetik a párhuzamosság előnyeit. Ez több tárolót biztosít a felhasználónak, ami növeli az egyidejűséget. Egyes Hive-lekérdezések azonban jelentős mennyiségű memóriát igényelnek (pl. MapJoin). Ha a feladat nem rendelkezik elegendő memóriával, futásidőben ki fog merülni a memóriakivétel. Ha memóriakivételeket kap, növelnie kell a memóriát.
A futó vagy párhuzamos tevékenységek egyidejű számát a YARN teljes memóriája fogja határolja. A YARN-tárolók száma határozza meg, hogy hány egyidejű feladat futtatható. A CSOMÓPONTonkénti YARN-memória megkereséséhez lépjen az Ambariba. Lépjen a YARN lapra, és tekintse meg a Konfigurációk lapot. Ebben az ablakban megjelenik a YARN-memória.
Yarn-memória összesen = csomópontok * YARN-memória csomópontonként A YARN-tárolók száma = ÖSSZES YARN-memória / Tez tárolóméret
A teljesítmény Data Lake Storage Gen1 használatával történő javításának kulcsa az egyidejűség lehető legnagyobb mértékű növelése. A Tez automatikusan kiszámítja a létrehozandó tevékenységek számát, így nem kell beállítania.
Példaszámítás
Tegyük fel, hogy 8 csomópontos D14-fürtje van.
Yarn-memória összesen = csomópontok * YARN memória csomópontonként Összesen YARN memória = 8 csomópont * 96 GB = 768 GB YARN-tárolók száma = 768 GB / 3072MB = 256
Korlátozások
Data Lake Storage Gen1 szabályozás
Ha eléri a Data Lake Storage Gen1 által biztosított sávszélesség korlátait, a feladathibák megjelennek. Ezt a feladatnaplók szabályozási hibáinak megfigyelésével lehet azonosítani. A párhuzamosságot a Tez tároló méretének növelésével csökkentheti. Ha több egyidejűségre van szüksége a munkájához, lépjen kapcsolatba velünk.
Annak ellenőrzéséhez, hogy szabályozva van-e, engedélyeznie kell a hibakeresési naplózást az ügyféloldalon. Ezt a következőképpen teheti meg:
Helyezze a következő tulajdonságot a log4j tulajdonságokba a Hive-konfigurációban. Ez Ambari-nézetben végezhető el: log4j.logger.com.microsoft.azure.datalake.store=DEBUG Indítsa újra a konfiguráció összes csomópontját/szolgáltatását a működés érvénybe lépéséhez.
Ha szabályozva van, a HIVE-naplófájlban megjelenik a HTTP 429-es hibakód. A hive-naplófájl /tmp/<user>/hive.log
További információ a Hive hangolásáról
Íme néhány blog, amely segít a Hive-lekérdezések hangolásában:
- Hive-lekérdezések optimalizálása a Hadoophoz a HDInsightban
- A Hive-lekérdezésfájl kódolása az Azure HDInsightban
- Ignite talk on optimize Hive on HDInsight