Welcome to Our Website

HPE Developer Community Portal

oorspronkelijke postinformatie:

"authorDisplayName": "Carol McDonald","publish": "2018-10-17T08:00:00.000Z","tags": "spark"

In deze blogpost geven we een inleiding tot Apache Spark en zijn geschiedenis en verkennen enkele van de gebieden waarin zijn specifieke set van mogelijkheden tonen de meeste belofte. We zullen de relatie met andere belangrijke technologieën bespreken en enkele nuttige tips geven.

met Vonk 2.,0 en latere versies, grote verbeteringen werden geïmplementeerd om Spark gemakkelijker te programmeren en sneller uit te voeren.

Wat Is Apache Spark?

Spark is een algemene gedistribueerde gegevensverwerkingsmachine die geschikt is voor gebruik in een breed scala van omstandigheden. Bovenop de Spark core Data processing engine, zijn er bibliotheken voor SQL, machine learning, grafiek berekening, en stream processing, die samen kunnen worden gebruikt in een toepassing. Programmeertalen ondersteund door Spark zijn: Java, Python, Scala, en R., Applicatieontwikkelaars en datawetenschappers nemen Vonk op in hun applicaties om snel gegevens op schaal te bevragen, te analyseren en te transformeren. Taken die het meest worden geassocieerd met Spark zijn ETL en SQL batch banen in grote datasets, verwerking van streaming gegevens van sensoren, IoT, of financiële systemen, en machine learning taken.

geschiedenis

om Spark te begrijpen, helpt het de geschiedenis te begrijpen., VÃ3Ã3r Spark was er MapReduce, een veerkrachtig distributed processing framework, dat Google in staat stelde om het exploderende volume van inhoud op het web te indexeren, over grote clusters van commodity servers.

er waren 3 kernconcepten in de Google-strategie:

  1. gegevens distribueren: wanneer een gegevensbestand wordt geüpload naar het cluster, wordt het gesplitst in brokken, datablokken genoemd, en verdeeld over de gegevensknooppunten en gerepliceerd over het cluster.,
  2. Distribute computation: gebruikers specificeren een kaartfunctie die een sleutel/waardepaar verwerkt om een set tussenliggende sleutel/waardeparen te genereren en een reduce-functie die alle tussenliggende waarden samenvoegt die geassocieerd zijn met dezelfde tussenliggende sleutel. Programma ‘ s die in deze functionele stijl zijn geschreven, worden automatisch parallelliseerd en op een grote cluster van grondstoffenmachines uitgevoerd op de volgende manier:

    • het toewijzingsproces draait op elk toegewezen dataknooppunt, waarbij alleen wordt gewerkt aan het datablok van een gedistribueerd bestand.,
    • de resultaten van de toewijzingsprocessen worden naar de reductoren verzonden in een proces genaamd” shuffle and sort”: sleutel/waarde-paren van de mappers worden gesorteerd op sleutel, gepartitioneerd door het aantal reductoren, en vervolgens verzonden over het netwerk en geschreven naar sleutel gesorteerde” sequence files ” op de reducer nodes.
    • het reductieproces wordt uitgevoerd op het toegewezen knooppunt en werkt alleen op de subset van de gegevens (het sequentiebestand). De uitvoer van het reductieproces wordt naar een uitvoerbestand geschreven.,
  3. tolereren fouten: zowel gegevens als berekeningen kunnen fouten tolereren door te falen naar een ander knooppunt voor gegevens of verwerking.

MapReduce Word count execution example:

Sommige iteratieve algoritmen, zoals PageRank, die Google gebruikte om websites te rangschikken in hun zoekmachineresultaten, vereisen het koppelen van meerdere MapReduce-taken samen, wat veel lezen en schrijven naar de schijf veroorzaakt., Wanneer meerdere MapReduce-taken aan elkaar zijn geketend, wordt voor elke MapReduce-taak data gelezen van een gedistribueerd bestandsblok naar een toewijzingsproces, geschreven naar en gelezen van een Sequentiebestand daartussen, en vervolgens geschreven naar een uitvoerbestand van een reductieproces.

Een jaar nadat Google een whitepaper publiceerde waarin het MapReduce framework (2004) werd beschreven, creëerden Doug Cutting en Mike Cafarella Apache Hadoop™.,

Apache Spark™ begon zijn leven in 2009 als een project binnen het AMPLab aan de Universiteit van Californië-Berkeley. Spark werd een geïncubeerd project van de Apache Software Foundation in 2013, en het werd begin 2014 gepromoot tot een van de top-level projecten van de Stichting. Spark is momenteel een van de meest actieve projecten beheerd door de Stichting, en de gemeenschap die is opgegroeid rond het project omvat zowel productieve individuele medewerkers en goed gefinancierde zakelijke backers, zoals Databricks, IBM, en China ‘ s Huawei.,

Het doel van het Spark-project was om de voordelen van het schaalbare, gedistribueerde, fouttolerante verwerkingskader van MapReduce te behouden, terwijl het efficiënter en gemakkelijker te gebruiken was. De voordelen van Spark ten opzichte van MapReduce zijn:

  • Spark voert veel sneller uit door gegevens in het geheugen te cachen over meerdere parallelle operaties, terwijl MapReduce meer lezen en schrijven vanaf schijf inhoudt.
  • Spark draait multi-threaded taken binnen JVM processen, terwijl MapReduce draait als zwaardere JVM processen., Dit geeft Vonk sneller opstarten, betere parallellisme, en betere CPU gebruik.
  • Spark biedt een rijker functioneel programmeermodel dan MapReduce.
  • Spark is vooral nuttig voor parallelle verwerking van gedistribueerde gegevens met iteratieve algoritmen.

hoe een Spark-toepassing op een Cluster draait

het onderstaande diagram toont een Spark-toepassing die op een cluster draait.,

  • Een Spark-toepassing draait als onafhankelijke processen, gecoördineerd door het SparkSession-object in het driver-programma.
  • de bron-of clusterbeheerder wijst taken toe aan werknemers, één taak per partitie.
  • een taak past zijn werkeenheid toe op de dataset in zijn partitie en voert een nieuwe partitie-dataset uit. Omdat iteratieve algoritmen herhaaldelijk bewerkingen op Gegevens toepassen, profiteren ze van het cachen van datasets over iteraties.,
  • resultaten worden teruggestuurd naar de driver toepassing of kunnen worden opgeslagen op de schijf.,anager opgenomen met Spark
  • Apache Mesos – een algemene cluster manager die ook kan uitvoeren Hadoop toepassingen
  • Apache Hadoop-GAREN – de resource manager in Hadoop 2
  • Kubernetes – een open source systeem voor het automatiseren van de implementatie, schalen, en het beheer van gecontaineriseerde toepassingen

Vonk heeft ook een lokale modus, waar de bestuurder en de executeurs uitvoeren als draden op uw computer in plaats van een cluster, wat handig is voor de ontwikkeling van uw applicaties vanaf een personal computer.,

Wat doet Spark?

Spark kan meerdere petabytes aan data tegelijk verwerken, verdeeld over een cluster van duizenden samenwerkende fysieke of virtuele servers. Het heeft een uitgebreide set van ontwikkelaar bibliotheken en API ‘ s en ondersteunt talen zoals Java, Python, R, en Scala; de flexibiliteit maakt het zeer geschikt voor een scala aan use cases., Spark wordt vaak gebruikt met gedistribueerde data stores zoals HPE Ezmeral Data Fabric, Hadoop ’s HDFS, en Amazon’ s S3, met populaire NoSQL databases zoals HPE Ezmeral Data Fabric, Apache HBase, Apache Cassandra, en MongoDB, en met gedistribueerde messaging winkels zoals HPE Ezmeral Data Fabric en Apache Kafka.

typische use cases zijn:

Stream processing: van logbestanden tot sensorgegevens, applicatie ontwikkelaars hebben steeds meer te maken met “streams” van gegevens., Deze gegevens komen in een gestage stroom, vaak uit meerdere bronnen tegelijk. Hoewel het zeker haalbaar is om deze gegevensstromen op de schijf op te slaan en ze retrospectief te analyseren, kan het soms verstandig of belangrijk zijn om de gegevens te verwerken en op te treden als het aankomt. Gegevensstromen met betrekking tot financiële transacties kunnen bijvoorbeeld in realtime worden verwerkt om mogelijk frauduleuze transacties te identificeren en te weigeren.

Machine learning: naarmate de gegevensvolumes toenemen, worden machine learning-benaderingen haalbaarder en nauwkeuriger., De Software kan worden opgeleid om triggers binnen goed begrepen datasets te identificeren en op te treden alvorens dezelfde oplossingen op nieuwe en onbekende gegevens toe te passen. Spark ’s vermogen om gegevens op te slaan in het geheugen en snel uitvoeren van herhaalde query’ s maakt het een goede keuze voor het trainen van machine learning algoritmen. Het steeds opnieuw op grote schaal uitvoeren van in grote lijnen vergelijkbare query ‘ s vermindert aanzienlijk de tijd die nodig is om door een reeks mogelijke oplossingen te gaan om de meest efficiënte algoritmen te vinden.,

interactieve analytics: in plaats van vooraf gedefinieerde query ‘ s uit te voeren om statische dashboards van verkoop of productielijn productiviteit of aandelenkoersen te creëren, willen business analisten en data scientists hun gegevens verkennen door een vraag te stellen, het resultaat te bekijken en vervolgens de initiële vraag iets te wijzigen of dieper in de resultaten te boren. Dit interactieve query proces vereist systemen zoals Spark die in staat zijn om snel te reageren en aan te passen.,

data-integratie: gegevens die door verschillende systemen in een bedrijf worden geproduceerd, zijn zelden schoon of consistent genoeg om eenvoudig en gemakkelijk te worden gecombineerd voor rapportage of analyse. Extraheren, transformeren en laden (ETL) processen worden vaak gebruikt om gegevens uit verschillende systemen te trekken, schoon te maken en te standaardiseren, en vervolgens te laden in een apart systeem voor analyse. Spark (en Hadoop) worden steeds vaker gebruikt om de kosten en tijd die nodig zijn voor dit ETL-proces te verminderen.

Wie gebruikt Spark?,

een breed scala van technologieverkopers hebben Spark snel ondersteund en zagen de mogelijkheid om hun bestaande big data-producten uit te breiden naar gebieden waar Spark echte waarde levert, zoals interactief bevragen en machine learning. Bekende bedrijven zoals IBM en Huawei hebben aanzienlijke bedragen geïnvesteerd in de technologie, en een groeiend aantal startups bouwen bedrijven die geheel of gedeeltelijk afhankelijk zijn van Spark., Bijvoorbeeld, in 2013 de Berkeley team verantwoordelijk voor het creëren van Spark opgericht Databricks, die een gehoste end-to-end data platform aangedreven door Spark biedt. Het bedrijf is goed gefinancierd, hebben ontvangen $247 miljoen over vier rondes van investeringen in 2013, 2014, 2016 en 2017, en Databricks medewerkers blijven een prominente rol spelen in het verbeteren en uitbreiden van de open source code van de Apache Spark project.,

de belangrijkste Hadoop-leveranciers, waaronder MapR, Cloudera en Hortonworks, zijn allemaal verhuisd naar ondersteuning op garen gebaseerde Spark naast hun bestaande producten, en elke leverancier werkt om waarde toe te voegen voor zijn klanten. Elders, IBM, Huawei, en anderen hebben allemaal aanzienlijke investeringen in Apache Spark, het integreren in hun eigen producten en bijdragen verbeteringen en uitbreidingen terug naar het Apache-project., Web-based bedrijven, zoals de Chinese zoekmachine Baidu, e-commerce operatie Taobao, en social networking bedrijf Tencent, alle draaien Spark-gebaseerde operaties op schaal, met Tencent ‘ s 800 miljoen actieve gebruikers naar verluidt het genereren van meer dan 700 TB aan gegevens per dag voor de verwerking op een cluster van meer dan 8.000 compute nodes.

naast deze webgebaseerde reuzen is het farmaceutisch bedrijf Novartis afhankelijk van Spark om de tijd te verkorten die nodig is om de modelleringsgegevens in handen te krijgen van onderzoekers, terwijl er tegelijkertijd voor wordt gezorgd dat ethische en contractuele waarborgen worden gehandhaafd.,

Wat onderscheidt Spark?

er zijn veel redenen om voor Spark te kiezen, maar de volgende drie zijn belangrijk:

eenvoud: de mogelijkheden van Spark zijn toegankelijk via een reeks rijke API ‘ s, allemaal speciaal ontworpen voor snelle en eenvoudige interactie met gegevens op schaal. Deze API ‘ s zijn goed gedocumenteerd en gestructureerd op een manier die het eenvoudig maakt voor gegevenswetenschappers en applicatie-ontwikkelaars om snel Spark aan het werk te zetten.

snelheid: Spark is ontworpen voor snelheid, zowel in het geheugen als op de schijf., Met behulp van Spark, een team van Databricks gebonden voor de eerste plaats met een team van de University of California, San Diego, in de 2014 Daytona GraySort benchmarking challenge (https://spark.apache.org/news/spark-wins-daytona-gray-sort-100tb-benchmark.html). De uitdaging bestaat uit het verwerken van een statische dataset; het Databricks-team was in staat om 100 terabytes aan gegevens te verwerken die zijn opgeslagen op solid-state drives in slechts 23 minuten, en de vorige winnaar nam 72 minuten met behulp van Hadoop en een andere clusterconfiguratie. Spark kan nog beter presteren bij het ondersteunen van interactieve query ‘ s van gegevens die zijn opgeslagen in het geheugen., In die situaties zijn er beweringen dat Vonk 100 keer sneller kan zijn dan Hadoop ‘ s MapReduce.

ondersteuning: Spark ondersteunt een reeks programmeertalen, waaronder Java, Python, R en Scala. Spark bevat ondersteuning voor strakke integratie met een aantal toonaangevende opslagoplossingen in het Hadoop-ecosysteem en daarbuiten, waaronder HPE Ezmeral Data Fabric (bestandssysteem, database en event store), Apache Hadoop (HDFS), Apache HBase en Apache Cassandra. Verder is de Apache Spark community groot, actief en internationaal., Een groeiende reeks commerciële providers, waaronder Databricks, IBM, en alle van de belangrijkste Hadoop-leveranciers, leveren uitgebreide ondersteuning voor Spark – gebaseerde oplossingen.

de kracht van Data Pipelines

Een groot deel van de kracht van Spark ligt in zijn vermogen om zeer verschillende technieken en processen samen te combineren tot één samenhangend geheel. Buiten Spark, de discrete taken van het selecteren van gegevens, het transformeren van die gegevens op verschillende manieren, en het analyseren van de getransformeerde resultaten kan gemakkelijk vereisen een reeks van aparte verwerking frameworks, zoals Apache Oozie., Spark, aan de andere kant, biedt de mogelijkheid om deze samen te combineren, het overschrijden van grenzen tussen batch, streaming en interactieve workflows op manieren die de gebruiker productiever te maken.

Spark-taken voeren meerdere bewerkingen achtereenvolgens uit, in het geheugen, en morsen alleen naar de schijf wanneer dit vereist is door geheugenbeperkingen. Spark vereenvoudigt het beheer van deze ongelijksoortige processen en biedt een geïntegreerd geheel – een datapijplijn die gemakkelijker te configureren, gemakkelijker te draaien en gemakkelijker te onderhouden is., In use cases zoals ETL kunnen deze pijpleidingen extreem rijk en complex worden, waarbij grote aantallen inputs en een breed scala aan verwerkingsstappen worden gecombineerd tot een uniform geheel dat consistent het gewenste resultaat oplevert.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *