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


Irányítópultok használata az Azure Databricks-metrikák megjelenítésére

Feljegyzés

Ez a cikk a GitHubon üzemeltetett nyílt forráskód könyvtárra támaszkodik: https://github.com/mspnp/spark-monitoring.

Az eredeti kódtár támogatja az Azure Databricks Runtimes 10.x (Spark 3.2.x) és korábbi verzióit.

A Databricks frissített verzióval támogatja az Azure Databricks Runtimes 11.0-s (Spark 3.3.x) és újabb verzióját a l4jv2 következő ágon: https://github.com/mspnp/spark-monitoring/tree/l4jv2.

Vegye figyelembe, hogy a 11.0-s kiadás nem kompatibilis visszafelé a Databricks Futtatókörnyezetekben használt különböző naplózási rendszerek miatt. Ügyeljen arra, hogy a Databricks Runtime-hoz megfelelő buildet használja. A tár és a GitHub-adattár karbantartási módban van. Nincsenek további kiadásokra vonatkozó tervek, és a problémák támogatása csak a legjobb munka lesz. Az Azure Databricks-környezetek monitorozásával és naplózásával kapcsolatos további kérdésekért forduljon azure-spark-monitoring-help@databricks.coma könyvtárhoz vagy az ütemtervhez.

Ez a cikk bemutatja, hogyan állíthat be Grafana-irányítópultot az Azure Databricks-feladatok teljesítményproblémák monitorozásához.

Az Azure Databricks egy gyors, hatékony és együttműködésen alapuló Apache Spark-alapú elemzési szolgáltatás, amely megkönnyíti a big data elemzési és mesterségesintelligencia-megoldások gyors fejlesztését és üzembe helyezését. A monitorozás az Azure Databricks számítási feladatainak éles környezetben való üzemeltetésének kritikus összetevője. Az első lépés a metrikák összegyűjtése egy munkaterületen elemzés céljából. Az Azure-ban a legjobb megoldás a naplóadatok kezelésére az Azure Monitor. Az Azure Databricks natív módon nem támogatja a naplóadatok Azure Monitorba küldését, de a GitHubon elérhető egy kódtár ehhez a funkcióhoz .

Ez a kódtár lehetővé teszi az Azure Databricks szolgáltatásmetrikáinak, valamint az Apache Spark-struktúra streamelési lekérdezési eseménymetrikáinak naplózását. Miután sikeresen üzembe helyezte ezt a tárat egy Azure Databricks-fürtben, további Grafana-irányítópultokat helyezhet üzembe, amelyeket az éles környezet részeként helyezhet üzembe.

Képernyőkép az irányítópultról.

Előfeltételek

Konfigurálja az Azure Databricks-fürtöt a monitorozási kódtár használatára a GitHub-olvasóban leírtak szerint.

Az Azure Log Analytics-munkaterület üzembe helyezése

Az Azure Log Analytics-munkaterület üzembe helyezéséhez kövesse az alábbi lépéseket:

  1. Lépjen a /perftools/deployment/loganalytics könyvtárra.

  2. Telepítse a logAnalyticsDeploy.json Azure Resource Manager-sablont. További információ a Resource Manager-sablonok üzembe helyezéséről: Erőforrások üzembe helyezése Resource Manager-sablonokkal és Azure CLI-vel. A sablon a következő paraméterekkel rendelkezik:

    • hely: Az a régió, ahol a Log Analytics-munkaterület és az irányítópultok üzembe vannak helyezve.
    • serviceTier: A munkaterület tarifacsomagja. Az érvényes értékek listáját itt találja.
    • dataRetention (nem kötelező): A naplóadatok a Log Analytics-munkaterületen való megőrzésének napjainak száma. Az alapértelmezett érték 30 nap. Ha a tarifacsomag az Free, az adatmegőrzésnek hét napnak kell lennie.
    • workspaceName (nem kötelező): A munkaterület neve. Ha nincs megadva, a sablon létrehoz egy nevet.
    az deployment group create --resource-group <resource-group-name> --template-file logAnalyticsDeploy.json --parameters location='East US' serviceTier='Standalone'
    

Ez a sablon létrehozza a munkaterületet, és létrehoz egy előre definiált lekérdezéseket is, amelyeket az irányítópult használ.

Grafana üzembe helyezése virtuális gépen

A Grafana egy nyílt forráskód projekt, amelyet üzembe helyezhet az Azure Log Analytics-munkaterületen tárolt idősor-metrikák vizualizációjához az Azure Monitor Grafana beépülő moduljának használatával. A Grafana egy virtuális gépen (virtuális gépen) hajt végre, és tárfiókot, virtuális hálózatot és egyéb erőforrásokat igényel. Ha egy bitnami-tanúsítvánnyal rendelkező Grafana-lemezképpel és a társított erőforrásokkal rendelkező virtuális gépet szeretne üzembe helyezni, kövesse az alábbi lépéseket:

  1. Az Azure CLI használatával fogadja el a Grafana Azure Marketplace-rendszerképének feltételeit.

    az vm image terms accept --publisher bitnami --offer grafana --plan default
    
  2. Lépjen a /spark-monitoring/perftools/deployment/grafana GitHub-adattár helyi példányában található könyvtárra.

  3. A grafanaDeploy.json Resource Manager-sablon üzembe helyezése az alábbiak szerint:

    export DATA_SOURCE="https://raw.githubusercontent.com/mspnp/spark-monitoring/master/perftools/deployment/grafana/AzureDataSource.sh"
    az deployment group create \
        --resource-group <resource-group-name> \
        --template-file grafanaDeploy.json \
        --parameters adminPass='<vm password>' dataSource=$DATA_SOURCE
    

Az üzembe helyezés befejezése után a Grafana bitnami-lemezképe telepítve lesz a virtuális gépen.

A Grafana jelszavának frissítése

A telepítési folyamat részeként a Grafana telepítési szkript egy ideiglenes jelszót ad ki a rendszergazda felhasználó számára. A bejelentkezéshez szüksége lesz erre az ideiglenes jelszóra. Az ideiglenes jelszó beszerzéséhez kövesse az alábbi lépéseket:

  1. Jelentkezzen be az Azure Portalra.
  2. Válassza ki azt az erőforráscsoportot, amelyben az erőforrások üzembe lettek helyezve.
  3. Válassza ki azt a virtuális gépet, amelyen a Grafana telepítve volt. Ha az alapértelmezett paraméternevet használta az üzembehelyezési sablonban, a virtuális gép neve a sparkmonitoring-vm-grafana előtaggal van el elnevezve.
  4. A Támogatási és hibaelhárítási szakaszban kattintson a Rendszerindítási diagnosztika elemre a rendszerindítási diagnosztikai lap megnyitásához.
  5. Kattintson a Soros napló elemre a rendszerindítási diagnosztikai lapon.
  6. Keresse meg a következő sztringet: "Bitnami-alkalmazás jelszavának beállítása".
  7. Másolja a jelszót egy biztonságos helyre.

Ezután módosítsa a Grafana rendszergazdai jelszavát az alábbi lépések végrehajtásával:

  1. Az Azure Portalon válassza ki a virtuális gépet, és kattintson az Áttekintés gombra.
  2. Másolja le a nyilvános IP-címet.
  3. Nyisson meg egy webböngészőt, és keresse meg a következő URL-címet: http://<IP address>:3000.
  4. A Grafana bejelentkezési képernyőjén adja meg a felhasználónév rendszergazdájának nevét, és használja a Grafana jelszavát az előző lépésekben.
  5. Bejelentkezés után válassza a Konfiguráció (a fogaskerék ikon) lehetőséget.
  6. Válassza a Kiszolgáló Rendszergazda lehetőséget.
  7. A Felhasználók lapon válassza ki a rendszergazdai bejelentkezést.
  8. Frissítse a jelszót.

Azure Monitor-adatforrás létrehozása

  1. Hozzon létre egy egyszerű szolgáltatást, amely lehetővé teszi a Grafana számára a Log Analytics-munkaterülethez való hozzáférés kezelését. További információ: Azure-szolgáltatásnév létrehozása az Azure CLI-vel

    az ad sp create-for-rbac --name http://<service principal name> \
                    --role "Log Analytics Reader" \
                    --scopes /subscriptions/mySubscriptionID
    
  2. Figyelje meg az appId, a jelszó és a bérlő értékét a parancs kimenetében:

    {
        "appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "displayName": "azure-cli-2019-03-27-00-33-39",
        "name": "http://<service principal name>",
        "password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    }
    
  3. Jelentkezzen be a Grafanába a korábban leírtak szerint. Válassza a Konfiguráció (a fogaskerék ikon), majd az Adatforrások lehetőséget.

  4. Az Adatforrások lapon kattintson az Adatforrás hozzáadása elemre.

  5. Adatforrástípusként válassza az Azure Monitort .

  6. A Gépház szakaszban adja meg az adatforrás nevét a Név szövegmezőben.

  7. Az Azure Monitor API Részletek szakaszában adja meg a következő információkat:

    • Előfizetés azonosítója: Az Azure-előfizetés azonosítója.
    • Bérlőazonosító: A korábbi bérlőazonosító.
    • Ügyfélazonosító: Az "appId" értéke a korábbiakból.
    • Titkos ügyfélkód: A korábbi jelszó értéke.
  8. Az Azure Log Analytics API Részletek szakaszában jelölje be az Azonos adatok, mint az Azure Monitor API jelölőnégyzetét.

  9. Kattintson a Mentés > Teszt gombra. Ha a Log Analytics-adatforrás megfelelően van konfigurálva, megjelenik egy sikeres üzenet.

Az irányítópult létrehozása

Hozza létre az irányítópultokat a Grafana alkalmazásban az alábbi lépések végrehajtásával:

  1. Lépjen a /perftools/dashboards/grafana GitHub-adattár helyi példányában található könyvtárra.

  2. Futtassa a következő parancsfájlt:

    export WORKSPACE=<your Azure Log Analytics workspace ID>
    export LOGTYPE=SparkListenerEvent_CL
    
    sh DashGen.sh
    

    A szkript kimenete egy SparkMonitoringDash.json nevű fájl.

  3. Térjen vissza a Grafana irányítópultra, és válassza a Létrehozás (a plusz ikon) lehetőséget.

  4. Válassza az Importálás lehetőséget.

  5. Kattintson a .json fájl feltöltése gombra.

  6. Válassza ki a 2. lépésben létrehozott SparkMonitoringDash.json fájlt.

  7. A Beállítások szakaszban, az ALA alatt válassza ki a korábban létrehozott Azure Monitor-adatforrást.

  8. Kattintson az Importálás elemre.

Vizualizációk az irányítópultokon

Az Azure Log Analytics és a Grafana irányítópultjai idősorozatos vizualizációkat is tartalmaznak. Minden gráf egy Apache Spark-feladathoz, a feladat szakaszaihoz és az egyes fázisokat alkotó tevékenységekhez kapcsolódó metrikaadatok idősoros ábrázolása.

A vizualizációk a következők:

Feladat késése

Ez a vizualizáció egy feladat végrehajtási késését jeleníti meg, ami durva nézet a feladatok általános teljesítményéről. Megjeleníti a feladat végrehajtásának időtartamát az elejétől a befejezésig. Vegye figyelembe, hogy a feladat kezdési időpontja nem ugyanaz, mint a feladat beküldési ideje. A késés a fürtazonosító és az alkalmazásazonosító alapján indexelt feladat végrehajtásának percentilise (10%, 30%, 50%, 90%).

Szakasz késése

A vizualizáció az egyes szakaszok késését jeleníti meg fürtönként, alkalmazásonként és egyes fázisonként. Ez a vizualizáció hasznos egy lassan futó szakasz azonosításához.

Tevékenység késése

Ez a vizualizáció a feladatvégrehajtás késését mutatja. A késés fürtönként, szakasznévként és alkalmazásonként a tevékenység végrehajtásának percentiliseként jelenik meg.

Feladat végrehajtásának összegzése gazdagépenként

Ez a vizualizáció a fürtön futó gazdagépenkénti feladatvégrehajtási késés összegét jeleníti meg. A feladatvégrehajtási késés gazdagépenként való megtekintése azonosítja azokat a gazdagépeket, amelyek általános késése sokkal nagyobb, mint a többi gazdagép. Ez azt jelentheti, hogy a feladatok nem hatékonyak vagy egyenlőtlenül oszlanak el a gazdagépek között.

Tevékenységmetrikák

Ez a vizualizáció egy adott tevékenység végrehajtásához tartozó végrehajtási metrikák készletét jeleníti meg. Ezek a metrikák magukban foglalják az adatösszesítés méretét és időtartamát, a szerializálási és deszerializálási műveletek időtartamát, valamint egyéb metrikát. A metrikák teljes készletéhez tekintse meg a panel Log Analytics-lekérdezését. Ez a vizualizáció hasznos a feladatokat alkotó műveletek megértéséhez és az egyes műveletek erőforrás-felhasználásának azonosításához. A gráf csúcsai olyan költséges műveleteket jelölnek, amelyeket meg kell vizsgálni.

Fürt átviteli sebessége

Ez a vizualizáció a fürtök és alkalmazások által indexelt munkaelemek magas szintű nézete, amely a fürtökön és alkalmazásokonként végzett munka mennyiségét jeleníti meg. Egy perces lépésekben jeleníti meg a fürtönként, alkalmazásonként és fázisonként befejezett feladatok, tevékenységek és szakaszok számát.

Streamelési átviteli sebesség/késés

Ez a vizualizáció egy strukturált streamelési lekérdezéshez társított metrikákhoz kapcsolódik. A grafikonon a bemeneti sorok másodpercenkénti száma és a másodpercenként feldolgozott sorok száma látható. A streamelési metrikák is alkalmazásonként jelennek meg. Ezek a metrikák akkor lesznek elküldve, amikor az OnQueryProgress esemény létrejön a strukturált streamlekérdezés feldolgozásakor, és a vizualizáció a streamelési késést jelöli, mivel ezredmásodpercben mennyi időt vesz igénybe egy lekérdezési köteg végrehajtása.

Erőforrás-felhasználás végrehajtónként

A következő az irányítópult vizualizációinak halmaza, amely megjeleníti az adott erőforrástípust és az egyes fürtök végrehajtónkénti felhasználásának módját. Ezek a vizualizációk segítenek azonosítani a kiugró értékeket az erőforrás-használatban végrehajtónként. Ha például egy adott végrehajtó munkafoglalása el van varrva, az erőforrás-felhasználás a fürtön futó többi végrehajtóhoz képest emelt szintű lesz. Ezt a végrehajtó erőforrás-fogyasztásának csúcsai azonosítják.

A végrehajtó számítási idejének metrikái

A következő az irányítópult vizualizációinak halmaza, amely a végrehajtó szerializálási idejét, az idő deszerializálását, a processzoridőt és a Java virtuális gépek idejét mutatja a végrehajtó teljes számítási idejéhez viszonyítva. Ez vizuálisan bemutatja, hogy a négy metrika mekkora mértékben járul hozzá a végrehajtók általános feldolgozásához.

Shuffle metrics

A vizualizációk végső halmaza a strukturált streamelési lekérdezéshez társított adatösszesítési metrikákat jeleníti meg az összes végrehajtóban. Ilyenek például az olvasási bájtok, az írott bájtok elkeverése, a memória shuffle és a lemezhasználat olyan lekérdezésekben, ahol a fájlrendszert használják.

Következő lépések