Dela via


Konfigurationer av Apache Spark-pooler i Azure Synapse Analytics

En Spark-pool är en uppsättning metadata som definierar beräkningsresurskraven och associerade beteendeegenskaper när en Spark-instans instans instanseras. Dessa egenskaper omfattar men är inte begränsade till namn, antal noder, nodstorlek, skalningsbeteende och tid att leva. En Spark-pool i sig förbrukar inga resurser. Det finns inga kostnader för att skapa Spark-pooler. Avgifter uppstår endast när ett Spark-jobb har körts på mål-Spark-poolen och Spark-instansen instansieras på begäran.

Du kan läsa hur du skapar en Spark-pool och ser alla deras egenskaper här Kom igång med Spark-pooler i Synapse Analytics

Isolerad beräkning

Alternativet Isolerad beräkning ger större säkerhet för Spark-beräkningsresurser från ej betrodda tjänster genom att den fysiska beräkningsresursen anges till en enda kund. Alternativet Isolerad beräkning passar bäst för arbetsbelastningar som kräver en hög grad av isolering från andra kunders arbetsbelastningar av orsaker som omfattar uppfyllande av efterlevnads- och regelkrav. Alternativet Isolera beräkning är endast tillgängligt med nodstorleken XXXLarge (80 vCPU/504 GB) och är endast tillgängligt i följande regioner. Det isolerade beräkningsalternativet kan aktiveras eller inaktiveras när poolen har skapats, även om instansen kan behöva startas om. Om du förväntar dig att aktivera den här funktionen i framtiden kontrollerar du att din Synapse-arbetsyta skapas i en isolerad beräkningsregion som stöds.

  • East US
  • USA, västra 2
  • USA, södra centrala
  • US Gov, Arizona
  • US Gov, Virginia

Noder

Apache Spark-poolinstansen består av en huvudnod och två eller flera arbetsnoder med minst tre noder i en Spark-instans. Huvudnoden kör extra hanteringstjänster som Livy, Yarn Resource Manager, Zookeeper och Spark-drivrutinen. Alla noder kör tjänster som Node Agent och Yarn Node Manager. Alla arbetsnoder kör Spark Executor-tjänsten.

Nodstorlekar

En Spark-pool kan definieras med nodstorlekar som sträcker sig från en liten beräkningsnod med 4 virtuella kärnor och 32 GB minne upp till en XXLarge-beräkningsnod med 64 virtuella kärnor och 432 GB minne per nod. Nodstorlekar kan ändras när poolen har skapats, men instansen kan behöva startas om.

Storlek V-kärna Minne
Litet 4 32 GB
Medium 8 64 GB
Stort 16 128 GB
XLarge 32 256 GB
XXLarge 64 432 GB
XXX Large (isolerad beräkning) 80 504 GB

Automatisk skalning

Autoskalning för Apache Spark-pooler möjliggör automatisk upp- och nedskalning av beräkningsresurser baserat på mängden aktivitet. När autoskalningsfunktionen är aktiverad anger du det lägsta och högsta antalet noder som ska skalas. När autoskalningsfunktionen är inaktiverad förblir antalet angivna noder fasta. Den här inställningen kan ändras när poolen har skapats, men instansen kan behöva startas om.

Lagring av elastisk pool

Apache Spark-pooler har nu stöd för elastisk lagring av pooler. Med elastisk poollagring kan Spark-motorn övervaka tillfällig lagring av arbetsnoder och ansluta extra diskar om det behövs. Apache Spark-pooler använder tillfällig disklagring medan poolen instansieras. Spark-jobb skriver shuffle map-utdata, blandar data och spiller data till lokala VM-diskar. Exempel på åtgärder som kan använda lokal disk är sortering, cachelagring och beständighet. När det tillfälliga diskutrymmet för den virtuella datorn tar slut kan Spark-jobb misslyckas på grund av felet "Slut på diskutrymme" (java.io.IOException: Inget utrymme kvar på enheten). Med felen "Slut på diskutrymme" är mycket av belastningen för att förhindra att jobb misslyckas skift till kunden för att konfigurera om Spark-jobben (till exempel justera antalet partitioner) eller kluster (till exempel lägga till fler noder i klustret). De här felen kanske inte är konsekventa och användaren kanske experimenterar mycket genom att köra produktionsjobb. Den här processen kan vara dyr för användaren i flera dimensioner:

  • Bortkastad tid. Kunder måste experimentera mycket med jobbkonfigurationer via utvärdering och fel och förväntas förstå Sparks interna mått för att fatta rätt beslut.
  • Bortkastade resurser. Eftersom produktionsjobb kan bearbeta olika mängder data kan Spark-jobb misslyckas icke-deterministiskt om resurserna inte är överetablerade. Tänk till exempel på problemet med datasnedställning, vilket kan leda till att några noder kräver mer diskutrymme än andra. För närvarande i Synapse får varje nod i ett kluster samma storlek på diskutrymmet och att öka diskutrymmet över alla noder är inte en idealisk lösning och leder till enormt slöseri.
  • Långsammare jobbkörning. I det hypotetiska scenariot där vi löser problemet genom automatisk skalning av noder (förutsatt att kostnaderna inte är ett problem för slutkunden) är det fortfarande dyrt att lägga till en beräkningsnod (tar några minuter) i stället för att lägga till lagring (tar några sekunder).

Ingen åtgärd krävs av dig, plus att du bör se färre jobbfel som ett resultat.

Kommentar

Azure Synapse Elastic Pool Storage finns för närvarande i offentlig förhandsversion. Under den offentliga förhandsversionen debiteras ingen kostnad för användning av elastic poollagring.

Automatisk paus

Funktionen automatisk paus släpper resurser efter en viss inaktivitetsperiod, vilket minskar den totala kostnaden för en Apache Spark-pool. Antalet minuter av inaktiv tid kan anges när den här funktionen är aktiverad. Funktionen för automatisk paus är oberoende av autoskalningsfunktionen. Resurser kan pausas oavsett om autoskalningen är aktiverad eller inaktiverad. Den här inställningen kan ändras när poolen har skapats, även om aktiva sessioner måste startas om.

Nästa steg