Megosztás:


A exisiting Apache Spark-kód módosítása az Azure Databrickshez

Ez a cikk ismerteti a meglévő Apache Spark-számítási feladatok Azure Databricksen való futtatásához szükséges módosításokat. Függetlenül attól, hogy helyszíni fürtből, egyéni felhőalapú infrastruktúrából vagy egy másik vállalati Apache Spark-ajánlatból költözik az Azure Databricksbe, a legtöbb számítási feladat csak néhány módosítást igényel az éles környezetbe való bevezetéshez. Az Azure Databricks egyéni optimalizálások bevezetésével, az infrastruktúra konfigurálásával és üzembe helyezésével, valamint a databricks-futtatókörnyezet függőségeinek fenntartásával kibővíti, leegyszerűsíti és javítja az Apache Spark teljesítményét.

Fontos

Az Apache Spark verzióinak frissítésekor előfordulhat, hogy a szintaxis hibásan változik. Lásd a Databricks Runtime kibocsátási megjegyzéseinek verzióit és kompatibilitását , valamint a Spark migrálási útmutatót.

Váltás parquet a delta

A Databricks a Delta Lake használatát javasolja parquet vagy ORC helyett az adatok írásakor. Az Azure Databricks számos funkciót optimalizált a hatékonyság érdekében, amikor a Delta Lake által támogatott táblákkal kommunikál, és a Parquet adat- és kódformátumának a Delta Lake-re való frissítése csak néhány lépést tesz meg. Lásd: Parquet data lake migrálása a Delta Lake-be.

Mivel a Delta Lake ACID-tranzakciós garanciákat biztosít, lehetőség van a munkaterhelések egyszerűsítésére és az Apache Spark-műveletekben alkalmazott, pszeudo-tranzakciókat célzó megoldások kiküszöbölésére. Ide sorolhatóak például a kövekezők:

  • Címtárstruktúra vagy particionálási stratégia létrehozása, amely lehetővé teszi egy adott művelet összes fájljának egyidejű felderítését egy partíció részeként.
  • A metaadattár konfigurálása vagy támaszkodása az új adatok felderítésének tranzakciós jellegének hozzáadására.
  • A MSCK repair használatával regisztrálhatja a táblába írt fájlokat a metaadattárba.
  • A alter table add partition használatával manuálisan adhat hozzá partíciókat egy táblához.

Lásd a Mikor kell particionálni a táblákat az Azure Databrickstémakört.

Feljegyzés

A számítási feladatokat a használt adatformátumok frissítése nélkül is futtathatja, de az Azure Databricks legnagyobb teljesítménynövekedése közvetlenül a Delta Lake-hez kötődik.

Újrafordítási Apache Spark-kód Databricks Runtime-kompatibilis kódtárakkal

A Databricks Runtime minden verziója előre konfigurálva van az Apache Spark-alkalmazásokban szükséges kódtárak közül. Szükség szerint további kódtárakat is telepíthet a számításhoz, de ha lehetséges, a Databricks javasolja a databricks-futtatókörnyezetbe csomagolt kódtár-verziók használatát, amelyek kompatibilitását teszteli. Minden Databricks Runtime-kiadás tartalmazza az összes telepített kódtár listáját. Lásd a Databricks Runtime kibocsátási megjegyzéseinek verzióit és kompatibilitását.

SparkSession létrehozási parancsainak eltávolítása

Számos régi Apache Spark-számítási feladat explicit módon deklarál egy új SparkSession-t minden feladathoz. Az Azure Databricks automatikusan létrehoz egy SparkContextet az egyes számítási fürtökhöz, és külön SparkSession-t hoz létre a fürtön végrehajtott minden egyes jegyzetfüzethez vagy feladathoz. Fenntarthatja a kód helyi fordításának és tesztelésének, majd az Azure Databricksben való üzembe helyezésének lehetőségét a parancsok használatára SparkSession.builder().getOrCreate()való frissítésével.

Terminálszkriptparancsok eltávolítása

Az Apache Spark megköveteli, hogy a programok explicit módon deklarálják, hogy befejeződnek olyan parancsok használatával, mint a sys.exit() vagy sc.stop(). Az Azure Databricks a befejezésük után automatikusan leállítja és törli a feladatokat, ezért ezek a parancsok nem szükségesek, ezért el kell távolítani őket.

Az Azure Databricks emellett automatikusan leállítja és megtisztítja a strukturált streamelési számítási feladatokat a futtatás leállításakor, így eltávolíthatja awaitTermination() és hasonló parancsokat a strukturált streamelési alkalmazásokból.

Az Azure Databricks megbízhatósága a fürt konfigurálásához

Az Azure Databricks automatikusan konfigurálja a számítási fürt illesztőprogramjainak és végrehajtóinak összes beállítását a rugalmasság és az erőforrás-használat maximalizálása érdekében. A végrehajtók vagy A JVM egyéni konfigurációinak megadása csökkentheti a teljesítményt. A Databricks azt javasolja, hogy csak olyan Spark-konfigurációkat állítsunk be, amelyek szükségesek a típuskezelés vagy a függvények szabályozásához, hogy a logika konzisztens maradjon.

Számítási feladatok futtatása

Most, hogy eltávolította azOkat a mintákat, parancsokat és beállításokat, amelyek megzavarhatják az Azure Databricks végrehajtását, tesztkörnyezetben futtathatja a számítási feladatokat, és összehasonlíthatja a teljesítményt és az eredményeket az örökölt infrastruktúrával. Bár a csapat által az Apache Spark-számítási feladatok hibaelhárítására és teljesítményének javítására kifejlesztett képességek nagy része továbbra is kihasználható az Azure Databricksben, az Apache Spark, a Delta Lake vagy az egyéni Azure Databricks-termékek új funkcióinak használatára való frissítési lépések nagyobb haszonra tehetnek szert.