Bedankt voor uw tijd; Ik probeer de jouwe zeker te waarderen. In deel 1 hebben we het gehad over Apache Spark-bibliotheken, Spark-componenten zoals Driver, DAG Scheduler, Task Scheduler en Worker. In deel 2 bespreken we de basisprincipes van Spark-concepten, zoals veerkrachtige gedistribueerde datasets, gedeelde variabelen, SparkContext, transformaties, actie en voordelen van het gebruik van Spark, samen met voorbeelden en wanneer Spark moet worden gebruikt.
RDD – Veerkrachtige gedistribueerde datasets
Het zijn verzamelingen van serialiseerbare elementen en zo'n verzameling kan worden gepartitioneerd, in welk geval het in meerdere knooppunten wordt opgeslagen.
Het kan zich in het geheugen of op schijf bevinden.
Spark gebruikt RDD om I/O te verminderen en de verwerkte gegevens in het geheugen te bewaren
RDD helpt bij het tolereren van node-storingen en hoeft niet het hele proces of de computer opnieuw te worden opgestart
Meestal wordt het gemaakt op basis van het Hadoop-invoerformaat of op basis van transformatie die is toegepast op bestaande RDD's.
RDD's slaan hun datalijn op; als gegevens verloren gaan, speelt Spark de afstamming opnieuw af om de verloren RDD's opnieuw op te bouwen.
RDD's zijn onveranderlijk.
Gedeelde variabelen
Spark heeft twee soorten variabelen waarmee informatie tussen de uitvoeringsknooppunten kan worden gedeeld.
Twee variabelen zijn broadcast- en accumulatorvariabelen.
Broadcast-variabelen worden allemaal verzonden naar de externe uitvoeringsknooppunten, vergelijkbaar met MapReduce Configuration-objecten.
Accumulatoren worden ook allemaal naar externe uitvoeringsknooppunten gestuurd, met de beperking dat we alleen aan de accumulatorvariabelen kunnen toevoegen, vergelijkbaar met MapReduce-tellers.
Spark-context
Het is een object dat de verbinding met een Spark-cluster vertegenwoordigt.
Het wordt gebruikt om RDD's te maken, gegevens uit te zenden en accu's te initialiseren.
Transformaties
Het zijn functies die de ene RDD nemen en een andere retourneren.
Transformaties zullen hun invoer nooit wijzigen, alleen de gewijzigde RDD retourneren.
Het is altijd lui, dus ze berekenen hun resultaten niet. In plaats van een transformatiefunctie aan te roepen, wordt alleen een nieuwe RDD gemaakt.
De hele set van bovengenoemde transformaties wordt uitgevoerd wanneer een actie wordt aangeroepen.
Er zijn veel transformaties in Spark - map(), filter(), KeyBy(), Join(), groupByKey(), sort().
Actie
Acties zijn methoden die een RDD uitvoeren en berekeningen uitvoeren en het resultaat terugsturen naar de drivertoepassing.
Actie activeert de berekening van transformaties en de resultaten kunnen een verzameling zijn, waarden op het scherm, waarden opgeslagen in een bestand.
Actie zal nooit een RDD retourneren.
Voordelen
- Eenvoud
- Veelzijdigheid
- Verminderde schijf-I/O
- Opslag
- Meertalig
- Onafhankelijkheid van resourcemanager
- Interactieve shell (REPL)
Spark is, net als andere big data-tools, krachtig, capabel en zeer geschikt voor het aangaan van een reeks uitdagingen op het gebied van analyse en big data.
Dit artikel verscheen oorspronkelijk hier. Opnieuw gepubliceerd met toestemming. Dien hier uw auteursrechtklachten in.