az Apache Spark építészeti alapja a rugalmas elosztott adatkészletben (RDD), amely csak olvasható, több adatelemet tartalmaz, amelyet egy gépcsoporton elosztanak, amelyet hibatűrő módon tartanak fenn. A Dataframe API-t absztrakcióként adták ki az RDD tetején, majd a Dataset API. A Spark 1.x, az RDD volt az elsődleges alkalmazás programozási felület (API), de a Spark 2.x az adatkészlet API használata akkor is javasolt, ha az RDD API nem elavult. Az RDD technológia továbbra is az adatkészlet API alapja.,
A Spark és Rddd-k 2012-ben kerültek kifejlesztésre a MapReduce cluster computing paradigma korlátaira válaszul, amely egy adott lineáris adatfolyam-struktúrát kényszerít elosztott programokra: a MapReduce programok a bemeneti adatokat lemezről olvasják, egy függvényt leképeznek az adatokon, csökkentik a térkép eredményeit, és a csökkentési eredményeket a lemezen tárolják. Spark RDDs funkció, mint egy működő készlet elosztott programok kínál (szándékosan) korlátozott formában elosztott megosztott memória.,
A Spark megkönnyíti mindkét iteratív algoritmus implementálását, amelyek egy hurokban többször is meglátogatják adatkészletüket, valamint interaktív / feltáró adatelemzést, azaz az adatok ismételt adatbázis-stílusú lekérdezését. Az ilyen alkalmazások késleltetése több nagyságrenddel csökkenthető az Apache Hadoop MapReduce implementációhoz képest.Az iteratív algoritmusok közé tartoznak a gépi tanulási rendszerek képzési algoritmusai, amelyek az Apache Spark fejlesztésének kezdeti lendületét képezték.
az Apache Sparkhoz klaszterkezelőre és elosztott tárolórendszerre van szükség., A klaszterkezeléshez a Spark támogatja az önálló (native Spark cluster, ahol manuálisan is elindíthat egy klasztert, vagy használhatja az install package által biztosított indító szkripteket. Lehetőség van arra is, hogy ezeket a démonokat egyetlen gépen teszteljék), Hadoop fonal, Apache Mesos vagy Kubernetes. Az elosztott tároláshoz a Spark sokféle interfésszel rendelkezik, beleértve az Alluxio, a Hadoop elosztott fájlrendszert (HDFS), a MapR fájlrendszert (MapR-FS), a Cassandra, az OpenStack Swift, az Amazon S3, a Kudu, a Lustre fájlrendszert vagy egy egyedi megoldást., A Spark támogatja a pszeudo-elosztott helyi módot is, amelyet általában csak fejlesztési vagy tesztelési célokra használnak, ahol nincs szükség elosztott tárolásra, és helyette a helyi fájlrendszer használható; ilyen esetben a Spark egyetlen gépen fut, CPU magonként egy végrehajtóval.
Spark CoreEdit
A Spark Core a teljes projekt alapja. Ez biztosítja elosztott feladat diszpécser, ütemezés, valamint az alapvető I / O funkciók, kitéve egy alkalmazás programozási felület (Java, Python, Scala,.,NET és R) az RDD absztrakció középpontjában (a Java API elérhető más JVM nyelvekhez, de használható más nem JVM nyelvekhez is, amelyek csatlakozhatnak a JVM-hez, például Julia). Ez a felület tükrök funkcionális/magasabb rendű modell programozási: egy “vezető” program meghívja a párhuzamos műveleteket, például a térkép, szűrő, vagy csökkenti egy RDD átadásával egy funkció, hogy a Szikra, amely aztán menetrend, a függvény végrehajtása, párhuzamosan a klaszter. Ezek a műveletek, illetve előfordulhat, hogy azokat, mint például csatlakozik, vegye RDDs, mint a bemeneti, illetve készítsen új RDDs., RDDs vannak megváltoztathatatlan, valamint a műveletek lusta; hibatűrő úgy érhető el, hogy nyomon követhetőek a “vonal” az egyes RDD (a műveletek sorrendjének, hogy elő), így rekonstruálható abban az esetben adatvesztés. RDDs tartalmazhat bármilyen típusú Python,. Net, Java, vagy Scala objektumok.
a programozás RDD-orientált funkcionális stílusa mellett a Spark a megosztott változók két korlátozott formáját biztosítja: broadcast változók referencia csak olvasható adatok, amelyeknek minden csomóponton rendelkezésre kell állniuk, míg az akkumulátorok elengedhetetlen stílusban programozhatók a csökkentések.,
az RDD-központú funkcionális programozás tipikus példája a következő Scala program, amely kiszámítja a szövegfájlokban előforduló összes szó frekvenciáját, és kinyomtatja a leggyakoribbakat. Minden térkép, flatMap (egy változata térkép) és reduceByKey vesz egy névtelen függvény, amely elvégzi egy egyszerű művelet egyetlen adatelem (vagy egy pár elem), és alkalmazza az érv, hogy átalakítsa egy RDDD egy új RDDD.,
Spark SQLEdit
A Spark SQL egy olyan komponens a Spark Core tetején, amely bevezette a DataFrames nevű adatkivonást, amely támogatja a strukturált és félig strukturált adatokat. Spark SQL egy domain – specifikus nyelv (DSL) manipulálni DataFrames Scala, Java, Python vagy .NET. azt is előírja, SQL nyelv támogatása, parancssori interfészek és ODBC/JDBC szerver. Bár a DataFrames nem rendelkezik az RDDs által biztosított fordítási típusú ellenőrzéssel, A Spark 2.0 – tól kezdve az erősen gépelt adatkészletet a Spark SQL is teljes mértékben támogatja.,
Spark StreamingEdit
A Spark Streaming a Spark Core gyors ütemezési képességét használja a streaming analytics végrehajtásához. Adatokat vesz fel mini-tételekben, és RDD transzformációkat hajt végre ezeken a mini-adatcsomagokon. Ez a kialakítás lehetővé teszi ugyanazt az alkalmazáskódot, amelyet a batch analytics számára írtak, hogy használják a streaming elemzésben, ezáltal megkönnyítve a lambda architektúra egyszerű megvalósítását. Ez a kényelem azonban a késleltetés büntetésével jár, amely megegyezik a mini-tétel időtartamával., Más streaming adatmotorok, amelyek eseményenként feldolgozzák az eseményt, nem pedig mini-tételekben, a Storm és a Flink streaming összetevője. Spark Streaming támogatja a beépített fogyasztani Kafka, Flume, Twitter, ZeroMQ, Kinesis, TCP/IP aljzatok.
A Spark 2.x, az adatkészleteken alapuló külön technológia, az úgynevezett strukturált Streaming, amely magasabb szintű interfésszel rendelkezik, szintén a streaming támogatására szolgál.
A Spark telepíthető egy hagyományos helyszíni adatközpontban, valamint a felhőben.,
MLlib Gépi Tanulás LibraryEdit
Szikra MLlib egy elosztott gép-learning keretrendszer tetején Szikra Mag, jelentős részben az elosztott memória alapú Szikra, építészet, annyi, mint kilencszer olyan gyors, mint a lemez-alapú megvalósítás által használt Apache Mahout (a referenciaértékeket a MLlib fejlesztők ellen a váltakozó legkisebb négyzetek (ALS) implementáció, mielőtt Mahout maga szerzett egy Szikra felület), pedig mérleg jobb, mint Vowpal Nyúl.,, Gradiens-Növelte a Fa
GraphXEdit
GraphX egy elosztott grafikon-feldolgozás keret tetején Apache Szikra., Mivel az RDD-Ken alapul, amelyek változatlanok, a gráfok változhatatlanok, így a GraphX nem alkalmas olyan grafikonokra, amelyeket frissíteni kell, nem is beszélve tranzakciós módon, mint egy gráf adatbázis. A GraphX két különálló API-t biztosít masszívan párhuzamos algoritmusok (például PageRank) megvalósításához: egy Pregel absztrakciót, valamint egy általánosabb MapReduce stílusú API-t. Elődjével, a Spark 1.6-ban formálisan elavult bagellel ellentétben a GraphX teljes mértékben támogatja a tulajdonsággráfokat (olyan gráfokat, ahol a tulajdonságok az élekhez és csúcsokhoz köthetők).,
A GraphX az Apache Giraph spark in-memory változatának tekinthető, amely a Hadoop lemez alapú MapReduce-t használta.
az Apache Sparkhoz hasonlóan a GraphX kezdetben az UC Berkeley ‘ s AMPLab and Databricks kutatóprojektjeként indult, majd később az Apache Software Foundation és a Spark projektnek adományozták.
Leave a Reply