Apache Spark is een raamwerk voor snelle gegevensverwerking dat zich toelegt op big data. Het maakt de verwerking van big data op een gedistribueerde manier mogelijk (clustercomputing). Dit framework is al een paar jaar erg populair en staat op het punt Hadoop te vervangen. De belangrijkste voordelen zijn de snelheid, het gebruiksgemak en de veelzijdigheid.
Apache Spark is een open source framework voor big data-verwerking dat grootschalige analyse via geclusterde machines mogelijk maakt. Spark, gecodeerd in Scala, maakt het mogelijk om gegevens te verwerken uit gegevensbronnen zoals Hadoop Distributed File System, NoSQL-databases of relationele gegevensopslag zoals Apache Hive. Dit framework ondersteunt ook verwerking in het geheugen, waardoor de prestaties van analytische toepassingen van big data toenemen. Het kan ook worden gebruikt voor conventionele schijfverwerking als de gegevenssets te groot zijn voor het systeemgeheugen.
Apache Spark-definitie: Big data als de belangrijkste applicatie
Apache Spark is een open source framework voor big data-verwerking dat is gebouwd om geavanceerde analyses uit te voeren en is ontworpen voor snelheid en gebruiksgemak. Het is oorspronkelijk ontwikkeld door AMPLab, UC Berkeley University, in 2009 en is in 2010 open source als een Apache-project doorgegeven.
Spark heeft verschillende voordelen ten opzichte van andere big data-technologieën en MapReduce zoals Hadoop en Storm. Ten eerste biedt Spark een alomvattend en uniform raamwerk om te voldoen aan de behoeften van big data-verwerking voor verschillende datasets, verschillend door hun aard (tekst, grafiek, enz.) Alsook door het type bron (batch of tijdstroom) -realistisch ). Vervolgens zorgt Spark ervoor dat applicaties op Hadoop-clusters tot 100 keer sneller in het geheugen kunnen worden uitgevoerd, en 10 keer sneller op schijf. Het stelt je in staat om snel applicaties te schrijven in Java, Scala of Python en bevat een spel van meer dan 80 high-level operators. Bovendien kan het interactief worden gebruikt om gegevens uit een shell op te vragen.
Naast Map and Reduce-bewerkingen ondersteunt Spark SQL-query’s en datastreaming en biedt het machine learning en grafiekgeoriënteerde verwerkingsmogelijkheden. Ontwikkelaars kunnen deze mogelijkheden stand-alone gebruiken of door ze te combineren tot een complexe verwerkingsketen.
Het Apache Spark-framework kan worden uitgevoerd op Hadoop 2-clusters op basis van de YARN Resource Manager of op Mesos. Het is ook mogelijk om het in stand-alone vorm of in de cloud te lanceren met de Elastic Compute Cloud-service van Amazon. Het biedt toegang tot verschillende databronnen zoals HDFS, Cassandra, HBase en S3.
Het andere belangrijke punt van dit raamwerk is de enorme gemeenschap. Apache Spark wordt door een groot aantal bedrijven gebruikt voor het verwerken van big data. Apache Spark is als open source platform ontwikkeld door een groot aantal developers van meer dan 200 bedrijven. Sinds 2009 hebben meer dan 1000 ontwikkelaars bijgedragen aan het project.
Met zijn snelheid van gegevensverwerking, zijn vermogen om vele soorten databases te combineren en om verschillende analytische applicaties uit te voeren, kan het alle Spark big data-applicaties verenigen. Dit is de reden waarom dit framework Hadoop zou kunnen vervangen.
Functies waardoor Apache Spark beter past bij de meeste bedrijven
Spark brengt verbeteringen aan MapReduce door middel van goedkopere shuffle-stappen. Met opslag in het geheugen en bijna realtime verwerking kunnen de prestaties voor veel bedrijven vele malen sneller zijn dan bij andere big data-technologieën. Spark ondersteunt ook luie evaluaties van query’s, wat helpt bij het optimaliseren van de verwerkingsstappen. Het biedt een API op hoog niveau voor verbeterde productiviteit en een consistent architectuurmodel voor big data-oplossingen.
Spark bewaart de tussenresultaten in het geheugen in plaats van op schijf, wat erg handig is, vooral als het nodig is dat bedrijven herhaaldelijk aan dezelfde dataset werken. De runtime-engine is ontworpen om zowel in geheugen als op schijf te werken. Operators van bedrijven voeren externe bewerkingen uit wanneer de gegevens niet in het geheugen passen, waardoor het mogelijk is om grotere gegevenssets te verwerken dan het totale geheugen van een cluster. Spark probeert zoveel mogelijk in het geheugen op te slaan voordat naar schijf wordt overgeschakeld. Het kan werken met een deel van de gegevens in het geheugen, een andere op schijf.
Het is noodzakelijk om de gegevens en gebruiksscenario’s te beoordelen om de geheugenvereisten te beoordelen, omdat Spark, op basis van het werk dat in het geheugen is gedaan, aanzienlijke prestatievoordelen voor veel bedrijven kan opleveren. Andere kenmerken die Spark opvallen, zijn onder meer:
- Andere functies dan Kaart en Verkleinen
- Optimalisatie van willekeurige operatorgrafieken
- Lazy queries-beoordeling, die helpt bij het optimaliseren van de algehele verwerkingsworkflow
- Beknopte en consistente API’s in Scala, Java en Python
- Een interactieve shell voor Scala en Python (nog niet beschikbaar in Java)
Spark tegen Hadoop
Hadoop is al 10 jaar gepositioneerd als een gegevensverwerkingstechnologie en is voor veel bedrijven de voorkeursoplossing gebleken voor het verwerken van grote hoeveelheden gegevens. MapReduce is een zeer goede oplossing voor verwerking in één doorgang, maar is niet de meest effectieve oplossing voor gebruikssituaties die verwerking met meerdere doorgangen en algoritmen vereisen. Omdat elke fase van een verwerkingsworkflow bestaat uit een kaartfase en een reductie-fase, is het noodzakelijk om alle use-cases in de vorm van MapReduce-patronen uit te drukken om van deze oplossing te kunnen profiteren. De uitvoergegevens van de uitvoering van elke stap moeten worden opgeslagen op een gedistribueerd bestandssysteem voordat de volgende stap begint. Deze aanpak is meestal traag vanwege replicatie en schijfopslag.
Bovendien vertrouwen Hadoop-oplossingen doorgaans op clusters, die moeilijk door bedrijven kunnen worden opgezet en beheerd. Ze vereisen ook de integratie van verschillende tools voor verschillende toepassingen van big data (zoals Mahout voor Machine Learning en Storm voor stroomverwerking).
Als een bedrijf iets complexers wil opzetten, zullen ze een reeks MapReduce-taken moeten koppelen en deze opeenvolgend moeten uitvoeren, waarbij elk van deze taken een hoge latentie heeft en niemand kan starten voordat de vorige volledig is voltooid.
Het voordeel van Spark ten opzichte van Hadoop voor bedrijven is dat het de ontwikkeling mogelijk maakt van complexe meerstaps gegevensverwerkingspijplijnen met behulp van acyclisch georiënteerde grafieken (AGD’s). Met Spark kunnen bedrijven gegevens in het geheugen delen tussen grafieken, zodat meerdere taken aan dezelfde gegevensset kunnen werken. Spark draait op de Hadoop Distributed File System (HDFS) -infrastructuur en biedt extra functies. Het is mogelijk om Spark-applicaties te implementeren op een bestaand Hadoop v1-cluster (met SIMR – Spark-Inside-MapReduce), op een Hadoop v2 YARN-cluster of zelfs op Apache Mesos. In plaats van Spark te zien als een vervanging voor Hadoop, is het juister om het te zien als een alternatief voor Hadoop’s MapReduce. Spark was niet bedoeld om Hadoop te vervangen, maar om een complete en uniforme oplossing te bieden om verschillende use-cases en behoeften voor verschillende datagestuurde bedrijven te ondersteunen.
Veelvoorkomende gebruiksscenario’s van Spark
Veel datagedreven bedrijven zijn voor hun analytische producten afhankelijk van verschillende databronnen. Verwerking zoals het transformeren, beheren en verenigen van ongestructureerde gegevens uit externe bronnen met interne bronnen, allemaal make-upworkflows voor gegevensverwerking. Vooral voor nieuwe bedrijven blijkt Spark buitengewoon nuttig te zijn. Sommige bedrijven hebben ook een eenvoudige gebruikersinterface gebouwd om batchgegevensverwerkingstaken mogelijk te maken.
- Stream verwerking: veel bedrijven zijn Spark gaan gebruiken vanwege deze functie – Spark Streaming. Toepassingen zoals real-time scoring2 van analytische modellen, stream mining, netwerkoptimalisatie, enz. Zijn ook inbegrepen. Volgens de statistieken geven datagedreven bedrijven de voorkeur aan Apache Spark met betrekking tot realtime streaming.
- Geavanceerde analyse: vanwege de snelheid en geschiktheid voor het verwerken van iteratieve berekeningen, geven veel bedrijven er de voorkeur aan boven Hadoop. Werken met Spark heeft de voorkeur boven veel bedrijven en vanaf het begin begonnen ze hun eigen Spark-bibliotheken te schrijven voor regressie, classificatie en clustering. Huidige wereldproblemen, zoals marketing en online adverteren, fraudedetectie en problemen met betrekking tot wetenschappelijk onderzoek worden nu opgelost met Spark-tools en -bibliotheken. Ongeveer 64% van de bedrijven gebruikt Apache Spark voor hun geavanceerde analyses.
- Business intelligence en visuele analyse: business intelligence en visuele analyse zijn een van de belangrijkste aspecten van elk bedrijf. Meer dan 91% van de bedrijven gebruikt nu Apache Spark vanwege de verbeterde prestaties.
Een voorbeeld van datagestuurde, grote bedrijven die al Apache Spark gebruiken, is Yahoo. Yahoo is een webzoekmachine en ze gebruiken al Apache Spark en draaien met succes projecten met Spark.
Databricks
Met Databricks kunnen bedrijven routinematige analysetaken programmeren en uitvoeren zonder menselijke tussenkomst. De uitgever, die een commerciële versie van het Apache Spark open source dataverwerkingsplatform levert, biedt nu een tool om automatisch scantaken te configureren en er bovenop uit te voeren.
Databricks is opgericht door de ontwikkelaars achter Apache Spark en de commerciële versie van het platform is ontworpen om in de cloud van Amazon Web Services te draaien. Met Spark kun je zeer grote datasets op meerdere servers analyseren, bijvoorbeeld om aanbevelingen te sturen naar een internetservice of om de inkomsten van een bedrijf te voorspellen. Omdat bedrijven gewend raken aan het verwerken van zeer grote hoeveelheden gegevens, doen ze dit steeds vaker met regelmaat. Hiervoor moet een beheerder inloggen op een console om de stappen te coördineren die nodig zijn om deze taken uit te voeren.
Met de nieuwe Databricks-cloudfunctie, Jobs genaamd, kunnen beheerders deze upstream-planning voorbereiden, zodat elke taak autonoom en met gespecificeerde intervallen in Spark wordt uitgevoerd. Een bedrijf kan bijvoorbeeld de uitvoering van een Spark-applicatie op een specifiek Cloud Databricks-cluster op een specifiek tijdstip plannen. Ze kunnen ook beslissen of ze liever een speciaal cluster gebruiken om te profiteren van maximale prestaties, of een cluster dat met andere gebruikers wordt gedeeld om geld te besparen. De service waarschuwt de gebruiker wanneer de taak is voltooid. Het houdt ook een dagboek bij waarmee u kunt weten of de taak met succes is uitgevoerd.
Spark is de ideale big data-tool voor datagedreven ondernemingen vanwege de snelheid, het gebruiksgemak en de veelzijdigheid. Als u een bedrijf bent met grote hoeveelheden gegevens, is Spark de tool waarmee u dergelijke gegevens snel kunt begrijpen en sneller weloverwogen beslissingen kunt nemen. Spark transformeert ook gemakkelijk uw bedrijfsgegevens.
Copyright © 2019 IDG Communications, Inc.