Megosztás a következőn keresztül:


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:

HDInsight Azure Portal– információk.

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.

Az Apache Ambari irányítópult áttekintése.

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.

Apache Ambari Restart WebHCat Server.

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:

  1. 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.

    HDInsight-feladatindító üzenetsor nézete.

    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.

  2. 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 napigmapreduce.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:

  1. A hibaelhárításhoz szükséges UTC időtartomány meghatározása
  2. Válassza ki a megfelelő webhcat.log fájl(ok)t
  3. A WARN és a HIBAÜZENETek keresése az adott időszakban

Egyéb WebHCat-hibák

  1. 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.

  2. Sikertelen feladatok

    Lehetnek olyan esetek, amikor a WebHCattel végzett interakciók sikeresek, de a feladatok sikertelenek.

    A Templeton a feladatkonzol kimenetét stderr statusdira 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:

Apache Ambari Stack és verziók.

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ütt syslog .

  • 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.

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:

Ambari – Gyorshivatkozások a naplófájlokhoz.

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.

  1. Hozzon létre egy új tesztfürtöt a sikertelen fürt konfigurációjával megegyező konfigurációval.
  2. Küldje el az első feladatlépést a tesztfürtnek.
  3. 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.
  4. 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.
  5. Folytassa, amíg az összes lépés hiba nélkül nem fut.
  6. Ha végzett a tesztfürt hibakeresésével, törölje azt.

Következő lépések