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.
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:
Lépjen a
/perftools/deployment/loganalytics
könyvtárra.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:
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
Lépjen a
/spark-monitoring/perftools/deployment/grafana
GitHub-adattár helyi példányában található könyvtárra.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:
- Jelentkezzen be az Azure Portalra.
- Válassza ki azt az erőforráscsoportot, amelyben az erőforrások üzembe lettek helyezve.
- 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.
- 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.
- Kattintson a Soros napló elemre a rendszerindítási diagnosztikai lapon.
- Keresse meg a következő sztringet: "Bitnami-alkalmazás jelszavának beállítása".
- 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:
- Az Azure Portalon válassza ki a virtuális gépet, és kattintson az Áttekintés gombra.
- Másolja le a nyilvános IP-címet.
- Nyisson meg egy webböngészőt, és keresse meg a következő URL-címet:
http://<IP address>:3000
. - 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.
- Bejelentkezés után válassza a Konfiguráció (a fogaskerék ikon) lehetőséget.
- Válassza a Kiszolgáló Rendszergazda lehetőséget.
- A Felhasználók lapon válassza ki a rendszergazdai bejelentkezést.
- Frissítse a jelszót.
Azure Monitor-adatforrás létrehozása
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
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" }
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.
Az Adatforrások lapon kattintson az Adatforrás hozzáadása elemre.
Adatforrástípusként válassza az Azure Monitort .
A Gépház szakaszban adja meg az adatforrás nevét a Név szövegmezőben.
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.
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.
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:
Lépjen a
/perftools/dashboards/grafana
GitHub-adattár helyi példányában található könyvtárra.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.
Térjen vissza a Grafana irányítópultra, és válassza a Létrehozás (a plusz ikon) lehetőséget.
Válassza az Importálás lehetőséget.
Kattintson a .json fájl feltöltése gombra.
Válassza ki a 2. lépésben létrehozott SparkMonitoringDash.json fájlt.
A Beállítások szakaszban, az ALA alatt válassza ki a korábban létrehozott Azure Monitor-adatforrást.
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.