Egy HDInsight-fürt lassú vagy meghibásodott feladatának hibaelhárítása
Ha egy HDInsight-fürtön adatokat feldolgozó alkalmazás lassan fut, vagy hibakóddal meghiúsul, számos hibaelhárítási lehetőség közül választhat. Ha a feladatok futtatása a vártnál hosszabb időt vesz igénybe, vagy általában lassú válaszidőket lát, előfordulhatnak hibák a fürtből, például a fürt által futtatott szolgáltatásokból. Ezeknek a lassulásoknak azonban a leggyakoribb oka a nem megfelelő skálázás. Új HDInsight-fürt létrehozásakor válassza ki a megfelelő virtuálisgép-méreteket.
Lassú vagy sikertelen fürt diagnosztizálásához gyűjtsön információkat a környezet minden aspektusáról, például a társított Azure-szolgáltatásokról, a fürtkonfigurációról és a feladatvégrehajtási információkról. Egy hasznos diagnosztikával megpróbálhatja reprodukálni a hibaállapotot egy másik fürtben.
- 1. lépés: Adatok gyűjtése a problémáról.
- 2. lépés: A HDInsight-fürtkörnyezet ellenőrzése.
- 3. lépés: A fürt állapotának megtekintése.
- 4. lépés: Tekintse át a környezeti vermet és a verziókat.
- 5. lépés: A fürt naplófájljainak vizsgálata.
- 6. lépés: Ellenőrizze a konfigurációs beállításokat.
- 7. lépés: Reprodukálja a hibát egy másik fürtön.
1. lépés: Adatok gyűjtése a problémáról
A HDInsight számos eszközt kínál, amelyekkel azonosíthatja és elháríthatja a fürtökkel kapcsolatos problémákat. Az alábbi lépések végigvezetik ezen eszközökön, és javaslatokat nyújtanak a probléma felismerésére.
A probléma azonosítása
A probléma azonosításához vegye figyelembe az alábbi kérdéseket:
- Mire számítottam? Mi történt helyette?
- Mennyi ideig tart a folyamat futtatása? Mennyi ideig kell futnia?
- A feladataim mindig lassan futnak ezen a fürtön? Gyorsabban futottak egy másik fürtön?
- Mikor jelentkezett először ez a probléma? Milyen gyakran történt azóta?
- Változott valami a fürtkonfigurációban?
Fürt részletei
A fontos fürtinformációk a következők:
- Fürt neve.
- Fürtrégió – Ellenőrizze a régiókimaradásokat.
- HDInsight-fürt típusa és verziója.
- A fej- és feldolgozócsomópontokhoz megadott HDInsight-példányok típusa és száma.
Az Azure Portal a következő információkat nyújtja:
Az Azure CLI-t is használhatja:
az hdinsight list --resource-group <ResourceGroup>
az hdinsight show --resource-group <ResourceGroup> --name <ClusterName>
Egy másik lehetőség a PowerShell használata. További információ: Apache Hadoop-fürtök kezelése a HDInsightban az Azure PowerShell használatával.
2. lépés: A HDInsight-fürtkörnyezet ellenőrzése
Minden HDInsight-fürt különböző Azure-szolgáltatásokra és nyílt forráskódú szoftverekre, például az Apache HBase-re és az Apache Sparkra támaszkodik. A HDInsight-fürtök más Azure-szolgáltatásokat is meghívhatnak, például azure-beli virtuális hálózatokat. A fürthibát a fürt bármely futó szolgáltatása vagy egy külső szolgáltatás okozhatja. A fürtszolgáltatás konfigurációjának módosítása a fürt meghibásodását is okozhatja.
Szolgáltatásismertető
- Ellenőrizze a nyílt forráskódú kódtár kiadási verzióit.
- Ellenőrizze, hogy van-e Azure-szolgáltatáskimaradás.
- Ellenőrizze az Azure-szolgáltatások használati korlátait.
- Ellenőrizze az Azure Virtual Network alhálózati konfigurációját.
Fürtkonfigurációs beállítások megtekintése az Ambari felhasználói felületével
Az Apache Ambari egy HDInsight-fürt kezelését és monitorozását biztosítja webes felhasználói felülettel és REST API-val. Az Ambari Linux-alapú HDInsight-fürtökön is megtalálható. Válassza a Fürt irányítópult panelt az Azure Portal HDInsight lapján. Válassza a HDInsight-fürt irányítópultjának panelét az Ambari felhasználói felületének megnyitásához, és adja meg a fürt bejelentkezési hitelesítő adatait.
A szolgáltatásnézetek listájának megnyitásához válassza az Ambari-nézetek lehetőséget az Azure Portal oldalán. Ez a lista attól függ, hogy mely kódtárak vannak telepítve. Megjelenhet például a YARN Queue Manager, a Hive View és a Tez nézet. Válassza ki a szolgáltatáshivatkozást a konfiguráció és a szolgáltatásinformációk megtekintéséhez.
Azure-szolgáltatás kimaradásainak ellenőrzése
A HDInsight számos Azure-szolgáltatásra támaszkodik. Virtuális kiszolgálókat futtat az Azure HDInsightban, adatokat és szkripteket tárol az Azure Blob Storage-ban vagy az Azure Data Lake Storage-ban, és indexeli a naplófájlokat az Azure Table Storage-ban. Ezeknek a szolgáltatásoknak a zavarai, bár ritkán, problémákat okozhatnak a HDInsightban. Ha váratlan lassulások vagy hibák jelentkeznek a fürtben, ellenőrizze az Azure Állapot irányítópultját. Az egyes szolgáltatások állapota régiónként van felsorolva. Ellenőrizze a fürt régióját és régióját a kapcsolódó szolgáltatásokhoz.
Az Azure-szolgáltatások használati korlátainak ellenőrzése
Ha nagy fürtöt indít, vagy egyszerre több fürtöt indított el, a fürt meghiúsulhat, ha túllépte az Azure-szolgáltatáskorlátot. A szolgáltatási korlátok az Azure-előfizetéstől függően eltérőek lehetnek. További információk: Az Azure-előfizetésekre és -szolgáltatásokra vonatkozó korlátozások, kvóták és megkötések. Kérheti, hogy a Microsoft növelje a rendelkezésre álló HDInsight-erőforrások (például virtuálisgép-magok és virtuálisgép-példányok) számát a Resource Manager magkvótanövelési kérésével.
A kiadási verzió ellenőrzése
Hasonlítsa össze a fürt verzióját a LEGÚJABB HDInsight-kiadással. Minden HDInsight-kiadás olyan fejlesztéseket tartalmaz, mint az új alkalmazások, funkciók, javítások és hibajavítások. Előfordulhat, hogy a fürtöt érintő probléma a legújabb kiadási verzióban lett javítva. Ha lehetséges, futtassa újra a fürtöt a HDInsight legújabb verziójával és az olyan társított kódtárak használatával, mint az Apache HBase, az Apache Spark és mások.
Fürtszolgáltatások újraindítása
Ha lassulást tapasztal a fürtben, fontolja meg a szolgáltatások újraindítását az Ambari felhasználói felületén vagy a klasszikus Azure CLI-n keresztül. Előfordulhat, hogy a fürt átmeneti hibákat tapasztal, és az újraindítás a leggyorsabb módszer a környezet stabilizálására és a teljesítmény javítására.
3. lépés: A fürt állapotának megtekintése
A HDInsight-fürtök különböző típusú, virtuálisgép-példányokon futó csomópontokból állnak. Minden csomópont figyelhető az erőforrás-éhezés, a hálózati csatlakozási problémák és a fürt lelassítását lehetővé tevő egyéb problémák esetén. Minden fürt két fő csomópontot tartalmaz, a legtöbb fürttípus pedig munkavégző és élcsomópontok kombinációját tartalmazza.
Az egyes fürttípusok által használt különböző csomópontok leírását lásd: Fürtök beállítása a HDInsightban az Apache Hadoop, az Apache Spark és az Apache Kafka használatával.
A következő szakaszok ismertetik, hogyan ellenőrizheti az egyes csomópontok és a teljes fürt állapotát.
Pillanatkép lekérése a fürt állapotáról az Ambari felhasználói felület irányítópultján
Az Ambari felhasználói felület irányítópultja (https://<clustername>.azurehdinsight.net
) áttekintést nyújt a fürt állapotáról, például az üzemidőről, a memóriáról, a hálózat- és PROCESSZORhasználatról, a HDFS-lemezhasználatról stb. Az Ambari Gazdagépek szakaszával gazdagépszinten tekintheti meg az erőforrásokat. A szolgáltatásokat le is állíthatja és újraindíthatja.
A WebHCat szolgáltatás ellenőrzése
Az Apache Hive, az Apache Pig vagy az Apache Sqoop-feladatok egyik gyakori hibája a WebHCat (vagy Templeton) szolgáltatás hibája. A WebHCat egy REST-felület távoli feladatok végrehajtásához, például Hive, Pig, Scoop és MapReduce. A WebHCat lefordítja a feladatbeküldési kérelmeket Apache Hadoop YARN-alkalmazásokra, és visszaad egy, a YARN-alkalmazás állapotából származó állapotot. A következő szakaszok a WebHCat HTTP gyakori állapotkódjait ismertetik.
BadGateway (502 állapotkód)
Ez a kód az átjárócsomópontok általános üzenete, és a leggyakoribb hibaállapot-kódok. Ennek egyik lehetséges oka, hogy a WebHCat szolgáltatás le van kapcsolva az aktív főcsomóponton. Ennek a lehetőségnek a ellenőrzéséhez használja a következő CURL-parancsot:
curl -u admin:{HTTP PASSWD} https://{CLUSTERNAME}.azurehdinsight.net/templeton/v1/status?user.name=admin
Az Ambari egy riasztást jelenít meg azokról a gazdagépekről, amelyeken a WebHCat szolgáltatás le van kapcsolva. A WebHCat szolgáltatás visszaállításához indítsa újra a szolgáltatást a gazdagépen.
Ha egy WebHCat-kiszolgáló még mindig nem jön létre, ellenőrizze a műveleti naplóban a hibaüzeneteket. Részletesebb információkért tekintse meg a stderr
csomóponton hivatkozott fájlokat és stdout
fájlokat.
A WebHCat időtúllépése
A HDInsight-átjáró túllépi a két percnél hosszabb válaszidőt, és visszaadja azokat 502 BadGateway
. A WebHCat lekérdezi a YARN-szolgáltatásokat a feladatok állapotáról, és ha a YARN két percnél tovább tart a válaszadáshoz, a kérés időtúllépést okozhat.
Ebben az esetben tekintse át a következő naplókat a /var/log/webhcat
címtárban:
- webhcat.log az a Log4j-napló, amelybe a kiszolgáló naplókat ír
- webhcat-console.log a kiszolgáló indításakor
- webhcat-console-error.log a kiszolgálói folyamat stderrje
Feljegyzés
Minden egyes webhcat.log
gördült naponta, létrehozva a fájlokat nevű webhcat.log.YYYY-MM-DD
. Válassza ki a vizsgálandó időtartománynak megfelelő fájlt.
Az alábbi szakaszok a WebHCat időtúllépésének lehetséges okait ismertetik.
WebHCat szint időtúllépése
Ha a WebHCat terhelés alatt áll, és több mint 10 nyitott szoftvercsatornával rendelkezik, hosszabb időt vesz igénybe az új szoftvercsatorna-kapcsolatok létrehozása, ami időtúllépést eredményezhet. A WebHCat felé és onnan érkező hálózati kapcsolatok listázásához használja netstat
az aktuális aktív átjárócsomópontot:
netstat | grep 30111
A 30111 a WebHCat által figyelt port. A nyitott szoftvercsatornák számának 10-nél kevesebbnek kell lennie.
Ha nincsenek nyitott szoftvercsatornák, az előző parancs nem hoz létre eredményt. Annak ellenőrzéséhez, hogy a Templeton működik-e és figyeli-e a 30111-s portot, használja a következőt:
netstat -l | grep 30111
YARN-szint időtúllépése
A Templeton meghívja a YARN-t a feladatok futtatására, és a Templeton és a YARN közötti kommunikáció időtúllépést okozhat.
A YARN szintjén kétféle időtúllépés létezik:
A YARN-feladat elküldése elég hosszú időt vehet igénybe ahhoz, hogy időtúllépést okozzon.
Ha megnyitja a
/var/log/webhcat/webhcat.log
naplófájlt, és az "üzenetsorba helyezett feladat" kifejezésre keres, több olyan bejegyzés is megjelenhet, ahol a végrehajtási idő túl hosszú (>2000 ms), és a bejegyzések növekvő várakozási időt mutatnak.Az várólistára helyezett feladatok ideje folyamatosan nő, mert az új feladatok elküldési sebessége magasabb, mint a régi feladatok befejezésének aránya. A YARN-memória 100%-os kihasználtság után a
joblauncher queue
rendszer már nem tud kapacitást kölcsönözni az alapértelmezett üzenetsorból. Ezért nem fogadható el több új feladat a feladatindító üzenetsorba. Ez a viselkedés hosszabb és hosszabb várakozási időt okozhat, ami időtúllépési hibát okozhat, amelyet általában sokan követnek.Az alábbi képen a feladatindító üzenetsor 714,4%-os kihasználtságú. Ez elfogadható mindaddig, amíg az alapértelmezett üzenetsorban továbbra is ingyenes kapacitást kell felvenni. Ha azonban a fürt teljes kihasználtsága és a YARN-memória 100%-os kapacitással van elosztva, az új feladatoknak várniuk kell, ami végül időtúllépéseket okoz.
A probléma kétféleképpen oldható meg: csökkentheti az új feladatok elküldésének sebességét, vagy növelheti a régi feladatok felhasználási sebességét a fürt felskálázásával.
A YARN feldolgozása hosszú időt vehet igénybe, ami időtúllépést okozhat.
Az összes feladat listázása: Ez egy időigényes hívás. Ez a hívás számba veszi az alkalmazásokat a YARN Resource Managerből, és minden befejezett alkalmazás esetében lekéri az állapotot a YARN JobHistoryServertől. A nagyobb számú feladat esetén ez a hívás időtúllépést okozhat.
Hét napnál régebbi feladatok listázása: A HDInsight YARN JobHistoryServer úgy van konfigurálva, hogy hét napig
mapreduce.jobhistory.max-age-ms
(érték) megőrizze a befejezett feladatadatokat. A kiürített feladatok számbavétele időtúllépést eredményez.
A problémák diagnosztizálása:
- A hibaelhárításhoz szükséges UTC időtartomány meghatározása
- Válassza ki a megfelelő
webhcat.log
fájl(ok)t - A WARN és a HIBAÜZENETek keresése az adott időszakban
Egyéb WebHCat-hibák
HTTP-állapotkód 500
A legtöbb esetben, amikor a WebHCat 500 értéket ad vissza, a hibaüzenet a hiba részleteit tartalmazza. Ellenkező esetben tekintse át
webhcat.log
a WARN és a ERROR üzeneteket.Sikertelen feladatok
Lehetnek olyan esetek, amikor a WebHCattel végzett interakciók sikeresek, de a feladatok sikertelenek.
A Templeton a feladatkonzol kimenetét
stderr
statusdir
a következőképpen gyűjti össze, ami gyakran hasznos a hibaelhárításhoz.stderr
A tényleges lekérdezés YARN-alkalmazásazonosítóját tartalmazza.
4. lépés: A környezeti verem és a verziók áttekintése
Az Ambari felhasználói felületi verem és verzió lap a fürtszolgáltatások konfigurációjáról és a szolgáltatás verzióelőzményeiről nyújt tájékoztatást. A Hadoop szolgáltatáskódtár helytelen verziói fürthiba okai lehetnek. Az Ambari felhasználói felületén válassza a Rendszergazda menüt, majd a Stacks and Versions (Halmok és verziók) lehetőséget. A szolgáltatás verzióadatainak megtekintéséhez válassza a lapon a Verziók lapot:
5. lépés: A naplófájlok vizsgálata
A HDInsight-fürtöt alkotó számos szolgáltatásból és összetevőből számos típusú napló jön létre. A WebHCat naplófájljait korábban ismertetjük. Számos más hasznos naplófájlt is megvizsgálhat a fürttel kapcsolatos problémák szűkítése érdekében, az alábbi szakaszokban leírtak szerint.
A HDInsight-fürtök több csomópontból állnak, amelyek többsége a beküldött feladatok futtatásával van megbízva. A feladatok párhuzamosan futnak, de a naplófájlok csak lineárisan tudják megjeleníteni az eredményeket. A HDInsight új feladatokat hajt végre, és leállít másokat, amelyek nem fejeződnek be először. Ezt a tevékenységet a rendszer naplózza a
stderr
fájlokkal együttsyslog
.A szkriptművelet naplófájljai hibákat vagy váratlan konfigurációs módosításokat mutatnak a fürt létrehozási folyamata során.
A Hadoop-lépésnaplók a hibákat tartalmazó lépés részeként indított Hadoop-feladatokat azonosítják.
A szkriptműveleti naplók ellenőrzése
A HDInsight-szkriptműveletek manuálisan vagy a megadott esetekben futtatnak szkripteket a fürtön. A szkriptműveletekkel például további szoftvereket telepíthet a fürtre, vagy módosíthatja a konfigurációs beállításokat az alapértelmezett értékek alapján. A szkriptműveleti naplók ellenőrzése betekintést nyújt a fürt beállítása és konfigurálása során előforduló hibákba. A szkriptműveletek állapotát az Ambari felhasználói felületén található ops gombra kattintva vagy az alapértelmezett tárfiók naplóinak elérésével tekintheti meg.
A szkriptművelet-naplók a \STORAGE_ACCOUNT_NAME\DEFAULT_CONTAINER_NAME\custom-scriptaction-logs\CLUSTER_NAME\DATE
könyvtárban találhatók.
HDInsight-naplók megtekintése az Ambari gyorshivatkozásokkal
A HDInsight Ambari felhasználói felülete számos gyorshivatkozási szakaszt tartalmaz. Ha a HDInsight-fürtben egy adott szolgáltatás naplóhivatkozásait szeretné elérni, nyissa meg a fürt Ambari felhasználói felületét, majd válassza ki a szolgáltatáshivatkozást a bal oldali listából. Válassza ki a gyorshivatkozások legördülő menüt, majd a hdinsight csomópontot, majd válassza ki a kapcsolódó napló hivatkozását.
PÉLDÁUL HDFS-naplók esetén:
Hadoop által létrehozott naplófájlok megtekintése
A HDInsight-fürtök azure-táblákba és Azure Blob Storage-ba írt naplókat hoznak létre. A YARN saját végrehajtási naplókat hoz létre. További információt a HDInsight-fürtök naplóinak kezelése című témakörben talál.
Halomképek áttekintése
A halomképek az alkalmazás memóriájának pillanatképét tartalmazzák, beleértve az akkori változók értékeit, amelyek hasznosak a futtatókörnyezetben előforduló problémák diagnosztizálásában. További információ: Az Apache Hadoop-szolgáltatások halomképeinek engedélyezése Linux-alapú HDInsighton.
6. lépés: Konfigurációs beállítások ellenőrzése
A HDInsight-fürtök előre konfigurálva vannak a kapcsolódó szolgáltatások, például a Hadoop, a Hive, a HBase stb. alapértelmezett beállításaival. A fürt típusától, hardverkonfigurációjától, a csomópontok számától, a futtatott feladatok típusától és a használt adatoktól (és az adatok feldolgozásának módjától) függően előfordulhat, hogy optimalizálnia kell a konfigurációt.
A legtöbb forgatókönyv teljesítménykonfigurációinak optimalizálásával kapcsolatos részletes útmutatásért lásd: Fürtkonfigurációk optimalizálása az Apache Ambarival. A Spark használatakor lásd : Apache Spark-feladatok optimalizálása teljesítményre.
7. lépés: A hiba reprodukálása egy másik fürtön
A fürthiba forrásának diagnosztizálásához indítsa el az új fürtöt ugyanazzal a konfigurációval, majd egyenként küldje el újra a sikertelen feladat lépéseit. A következő lépés feldolgozása előtt ellenőrizze az egyes lépések eredményeit. Ezzel a módszerrel kijavíthat és újrafuttathat egy sikertelen lépést. Ennek a módszernek az az előnye is, hogy csak egyszer tölti be a bemeneti adatokat.
- Hozzon létre egy új tesztfürtöt a sikertelen fürt konfigurációjával megegyező konfigurációval.
- Küldje el az első feladatlépést a tesztfürtnek.
- Amikor a lépés befejezi a feldolgozást, ellenőrizze, hogy találhatók-e hibák a lépés naplófájljaiban. Csatlakozzon a tesztfürt főcsomóponthoz, és tekintse meg ott a naplófájlokat. A lépés naplófájljai csak akkor jelennek meg, ha a lépés egy ideig fut, befejeződik vagy meghiúsul.
- Ha az első lépés sikeres volt, futtassa a következő lépést. Ha hiba történt, vizsgálja meg a naplófájlokban található hibát. Ha hiba történt a kódban, végezze el a javítást, és futtassa újra a lépést.
- Folytassa, amíg az összes lépés hiba nélkül nem fut.
- Ha végzett a tesztfürt hibakeresésével, törölje azt.
Következő lépések
- HDInsight-fürtök kezelése az Apache Ambari webes felületével
- HDInsight-naplók elemzése
- Apache Hadoop YARN-alkalmazás bejelentkezésének elérése Linux-alapú HDInsightban
- Az Apache Hadoop-szolgáltatások halomképeinek engedélyezése Linux-alapú HDInsighton
- A HDInsighton futó Apache Spark-fürt ismert problémái
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: