Apache Spark az Azure Synapse Analytics alapfogalmaiban
Az Apache Spark egy párhuzamos feldolgozási keretrendszer, amely támogatja a memórián belüli feldolgozást a big data elemzési alkalmazások teljesítményének növelése érdekében. Az Azure Synapse Analyticsben üzemelő Apache Spark az Apache Spark egyik felhőbeli megvalósítása a Microsofttól.
Az Azure Synapse megkönnyíti a Spark-képességek létrehozását és konfigurálását az Azure-ban. Az Azure Synapse az itt dokumentált Spark-képességek eltérő implementációját biztosítja.
Spark-készletek
Egy kiszolgáló nélküli Apache Spark-készlet jön létre az Azure Portalon. Ez a Spark-készlet definíciója, amely a példányosításkor az adatokat feldolgozó Spark-példány létrehozásához használatos. A Spark-készlet létrehozásakor csak metaadatként létezik, és nem használ fel, nem futtat vagy számláz. A Spark-készlet számos tulajdonsággal rendelkezik, amelyek a Spark-példányok jellemzőit szabályozzák. Ezek a jellemzők magukban foglalják, de nem korlátozódnak a névre, a méretre, a skálázási viselkedésre, az élettartamra.
Mivel a Spark-készletek létrehozásához nincs dollár- vagy erőforrásköltség, bármilyen szám tetszőleges számú különböző konfigurációval hozható létre. Az engedélyek a Spark-készletekre is alkalmazhatók, így a felhasználók csak néhányhoz férhetnek hozzá, másokhoz nem.
Ajánlott eljárás kisebb Spark-készletek létrehozása, amelyek fejlesztési és hibakeresési célokra használhatók, majd nagyobbak az éles számítási feladatok futtatásához.
Megtudhatja, hogyan hozhat létre Spark-készletet, és itt tekintheti meg az összes tulajdonságukat – Ismerkedés a Spark-készletekkel az Azure Synapse Analyticsben
Spark-példányok
A Spark-példányok akkor jönnek létre, amikor egy Spark-készlethez csatlakozik, létrehoz egy munkamenetet, és futtat egy feladatot. Mivel több felhasználó is rendelkezhet hozzáféréssel egyetlen Spark-készlethez, minden csatlakozó felhasználóhoz létrejön egy új Spark-példány.
Egy második feladat elküldésekor, ha van kapacitás a készletben, a meglévő Spark-példány is rendelkezik kapacitással. Ezután a meglévő példány feldolgozza a feladatot. Ellenkező esetben, ha a kapacitás elérhető a készlet szintjén, létrejön egy új Spark-példány.
A példányok számlázása az Azure-beli virtuális gép(ek) elindulásakor kezdődik. A Spark-készletpéldányok számlázása leáll, amikor a készletpéldányok megszűnnek. Az Azure-beli virtuális gépek elindításáról és felszabadításáról további információt az Azure-beli virtuális gépek állapotáról és számlázási állapotáról talál.
Példák
1. példa
- Létrehoz egy SP1 nevű Spark-készletet; rögzített fürtmérete 20 közepes csomópont
- Elküld egy 10 csomópontot használó J1 jegyzetfüzet-feladatot, egy Spark-példányt, egy SI1-et a feladat feldolgozásához.
- Most egy másik, 10 csomópontot használó J2 feladatot küld be, mert még van kapacitás a készletben, és a J2 példányt az SI1 dolgozza fel.
- Ha a J2 11 csomópontot kért volna, akkor nem lett volna kapacitás az SP1-ben vagy az SI1-ben. Ebben az esetben, ha a J2 egy jegyzetfüzetből származik, akkor a rendszer elutasítja a feladatot; ha a J2 kötegelt feladatból származik, akkor a rendszer várólistára kerül.
- A számlázás a J1 jegyzetfüzetfeladat beküldésekor kezdődik.
- A Spark-készlet példányosítása 20 közepes csomóponttal történik, amelyek mindegyike 8 virtuális maggal rendelkezik, és általában ~3 percet vesz igénybe. 20 x 8 = 160 virtuális mag.
- A Spark-készlet indításának pontos időpontjától, az üresjárati időtúllépéstől és a két jegyzetfüzet-feladat futásidejétől függően; a készlet valószínűleg 18 és 20 perc között fog futni (Spark-készlet példányosítási ideje + notebook-feladat futtatókörnyezete + tétlen időtúllépés).
- 20 perces futtatókörnyezetet feltételezve 160 x 0,3 óra = 48 virtuális mag óra.
- Megjegyzés: a virtuális magok óradíja percenként kerül számlázásra, és a virtuális mag díjszabása az Azure-régiótól függően változik. További információkért lásd az Azure Synapse díjszabását
2. példa
- Hozzon létre egy Sp2 Spark-készlethívást; automatikus skálázása legalább 10 és legfeljebb 20 közepes csomópont között van engedélyezve
- 10 csomópontot használó J1 jegyzetfüzetfeladatot küld be; Létrejön egy Spark-példány SI1 a feladat feldolgozásához
- Most elküld egy másik J2 feladatot, amely 10 csomópontot használ; mivel a készletben továbbra is van kapacitás, a példány automatikusan 20 csomópontra skáláz, és feldolgozza a J2-t.
- A számlázás a J1 jegyzetfüzetfeladat beküldésekor kezdődik.
- A Spark-készlet példányosítása 10 közepes csomóponttal történik, amelyek mindegyike 8 virtuális maggal rendelkezik, és általában ~3 percet vesz igénybe. 10 x 8, 80 virtuális mag.
- A J2 beküldésekor a készlet automatikusan skálázódik további 10 közepes csomópont hozzáadásával, és általában 4 percet vesz igénybe az automatikus skálázás. 10 x 8, 80 virtuális mag hozzáadása összesen 160 virtuális maghoz.
- A Spark-készlet indítási idejétől, az első J1 jegyzetfüzetfeladat futásidejétől, a készlet vertikális felskálázásának időpontjától, a második jegyzetfüzet futtatókörnyezetétől és végül az üresjárati időtúllépéstől függően; a készlet valószínűleg 22 és 24 perc között fog futni (Spark-készlet példányosítási ideje + J1 jegyzetfüzetfeladat-futtatókörnyezet összesen 80 virtuális magon) + (Spark-készlet automatikus méretezési ideje + J2 notebook-feladat futásideje + tétlen időtúllépés mind 160 virtuális magon).
- 80 virtuális mag 4 percig + 160 virtuális mag 20 percig = 58,67 virtuális mag óra.
- Megjegyzés: a virtuális magok óradíja percenként kerül számlázásra, és a virtuális mag díjszabása az Azure-régiótól függően változik. További információkért lásd az Azure Synapse díjszabását
3. példa
- Létrehoz egy SP1 nevű Spark-készletet; rögzített fürtmérete 20 csomópont.
- 10 csomópontot használó J1 jegyzetfüzetfeladatot küld be; Létrejön egy Spark-példány SI1 a feladat feldolgozásához.
- Egy másik felhasználói U2 beküld egy J3 feladatot, amely 10 csomópontot használ; a rendszer létrehoz egy új Spark-példány SI2-t a feladat feldolgozásához.
- Most elküld egy másik J2 feladatot, amely 10 csomópontot használ; mert továbbra is van kapacitás a készletben, és a J2 példányt az SI1 dolgozza fel.
- A számlázás a J1 jegyzetfüzetfeladat beküldésekor kezdődik.
- A Spark-készlet SI1 példányosítása 20 közepes csomóponttal történik, amelyek mindegyike 8 virtuális maggal rendelkezik, és általában ~3 percet vesz igénybe. 20 x 8, 160 virtuális mag.
- A Spark-készlet kezdési időpontjától, az ide-időkorláttól és az első és a harmadik jegyzetfüzetfeladat futásidejétől függően; Az SI1-készlet valószínűleg 18 és 20 perc között fog futni (Spark-készlet példányosítási ideje + notebook-feladat futásideje + tétlen időtúllépés).
- Egy másik Spark-készlet SI2 példánya 20 közepes csomóponttal történik, amelyek mindegyike 8 virtuális maggal rendelkezik, és általában ~3 percet vesz igénybe. 20 x 8, 160 virtuális mag
- A Spark-készlet indításának pontos időpontjától, az ide-időtúllépéstől és az első jegyzetfüzet-feladat futásidejétől függően; Az SI2-készlet valószínűleg 18 és 20 perc között fut (Spark-készlet példányosítási ideje + jegyzetfüzetfeladat-futtatókörnyezet + tétlen időtúllépés).
- Feltéve, hogy a két készlet egyenként 20 percig fut, 160 x .03 x 2 = 96 virtuális mag óra.
- Megjegyzés: a virtuális magok óradíja percenként kerül számlázásra, és a virtuális mag díjszabása az Azure-régiótól függően változik. További információkért lásd az Azure Synapse díjszabását
Kvóták és erőforráskorlátok az Azure Synapse-hez készült Apache Sparkban
Munkaterület szintje
Minden Azure Synapse-munkaterület rendelkezik a Sparkban felhasználható virtuális magokra vonatozó alapértelmezett kvótával. A kvóta fel van osztva a felhasználói kvóta és az adatfolyamkvóta között, így egyik felhasználási mód sem foglalhatja le a munkaterület összes virtuális magját. A kvóta értéke az előfizetés típusától függ, de a felhasználói és az adatfolyamkvóta mindig egyenlő számú magot tartalmaz. Ha azonban több virtuális magot kér, mint amennyit a munkaterületen marad, a következő hibaüzenet jelenik meg:
Failed to start session: [User] MAXIMUM_WORKSPACE_CAPACITY_EXCEEDED
Your Spark job requested 480 vCores.
However, the workspace only has xxx vCores available out of quota of yyy vCores.
Try reducing the numbers of vCores requested or increasing your vCore quota. Click here for more information - https://go.microsoft.com/fwlink/?linkid=213499
Az üzenetben található hivatkozás erre a cikkre mutat.
Az alábbi cikk bemutatja, hogyan kérheti a munkaterület virtuális magkvóta növelését.
- Válassza az "Azure Synapse Analytics" lehetőséget szolgáltatástípusként.
- A Kvóta részletei ablakban válassza az Apache Spark (virtuális mag) lehetőséget munkaterületenként
Kapacitásnövelés kérése az Azure Portalon
Spark-készlet szintje
Amikor meghatároz egy Spark-készletet, felhasználónkénti kvótát határoz meg az adott készlethez, ha több jegyzetfüzetet vagy feladatot futtat, vagy a 2-ből egy mixet futtat, a készletkvótát kimerítheti. Ha így tesz, a rendszer hibaüzenetet hoz létre
Failed to start session: Your Spark job requested xx vCores.
However, the pool is consuming yy vCores out of available zz vCores.Try ending the running job(s) in the pool, reducing the numbers of vCores requested, increasing the pool maximum size or using another pool
A probléma megoldásához egy jegyzetfüzet vagy feladat futtatásával csökkentenie kell a készlet erőforrásainak használatát, mielőtt új erőforrás-kérelmet küldne.