A legjobb válasz
Arra, ami a keret egészét érinti: ebben a pillanatban az Apache Spark egy lépéssel megelőzi versenytársait , néhány olyan jellemző miatt, mint a különféle és nagyon hasznos eszközök (a Spark SQL és az MLlib csak kettőt említve) megvalósítása (és integrálása), valamint a köztes adatok RDD-kben történő tárolásának képessége miatt. Ennek az indítéknak köszönhetően sok fejlesztő erre koncentrál, és feltételezésem szerint addig, amíg egy új áttörés nem jön létre az alaptechnológiában, minden versenytárs elhanyagolható lesz.
Másképp, ha figyelembe vesszük az egyes megvalósításokat az Apache Sparkon azonosíthat néhány versenytársat: A H2O a Spark MLlib kihívója, a Storm (Joe rámutatott rá) a Spark streaming alternatívája, és odakinn számos SQL-szerű motor létezik, amelyek összehasonlíthatók a Spark SQL-szel .
Válasz
Íme néhány JARGON az Apache Sparktól, amelyeket használni fogok.
Feladat: – Olyan kódrészlet, amely beolvas bizonyos bemeneteket a HDFS-ből vagy a helyi adatokból, elvégzi az adatok kiszámítását és a kimeneti adatok írását. . A szakaszok a Map kategóriába vannak besorolva, vagy csökkentik a szakaszokat (könnyebb megérteni, ha dolgozott a Hadoop-on és összefüggést akar adni). A szakaszokat a számítási határok alapján osztják fel, az összes számítást (operátort) nem lehet egyetlen szakaszban frissíteni. Sok szakaszban történik.
Feladatok: – Minden szakasznak vannak bizonyos feladatai, partíciónként egy-egy feladat. Egy feladat egy végrehajtón (gépen) egy adatpartíción fut.
DAG – A DAG az Directed Acyclic Graph rövidítése, a jelenlegi összefüggésben az operátorok DAG-ja.
Végrehajtó – A feladat végrehajtásáért felelős folyamat.
Illesztőprogram – Az a program / folyamat, amely a feladatnak a Spark Engine felett történő futtatásáért felelős.
Master – Az a gép, amelyen a Driver program fut
Slave – Az a gép, amelyen az Executor program fut.
Az összes szikra alatt álló feladat egy sor operátort tartalmaz és egy adatsoron fut. A job összes operátorát felhasználják egy DAG (Directed Acyclic Graph) irányításához. A DAG optimalizálása a kezelő átrendezésével és kombinálásával lehetséges. Tegyük fel például, hogy be kell küldenie egy Spark-feladatot, amely egy térképi műveletet, majd egy szűrési műveletet tartalmaz. A Spark DAG optimalizáló átrendezné ezen operátorok sorrendjét, mivel a szűrés csökkentené a térképi műveleteken átesett rekordok számát.
A Spark kicsi kódbázissal rendelkezik, és a rendszer több rétegre van felosztva. Minden rétegnek vannak bizonyos feladatai. A rétegek függetlenek egymástól.
- Az első réteg a tolmács , a Spark Scala tolmácsot használ, némi módosítással.
- Amint beírja a kódot a spark konzolba (RDD-k létrehozása és operátorok alkalmazása) ), A Spark létrehoz egy operátordiagramot.
- Amikor a felhasználó egy műveletet futtat (például a gyűjtést), a grafikont egy DAG-ütemezőhöz küldik. A DAG ütemező felosztja az operátori grafikont (leképezés és kicsinyítés) szakaszokra.
- Egy szakasz a bemeneti adatok partícióin alapuló feladatokból áll. A DAG ütemezője az operátorok összekapcsolják a grafikon optimalizálását. Például sokak számára a térképkezelők egyetlen szakaszban ütemezhetők. Ez az optimalizálás kulcsfontosságú a Sparks teljesítményéhez. A DAG ütemező végeredménye szakaszok halmaza.
- A szakaszokat továbbítják a Feladatütemező . A feladatütemező a fürtkezelő . (Spark önálló / fonal / Mesos). A feladatütemező nem tud a szakaszok közötti függőségekről.
- A Munkavállaló a Slave-n hajtja végre a feladatokat. Új JVM indul el MUNKA. A munkavállaló csak a neki átadott kódról tud.
A Spark gyorsítótárba helyezi a feldolgozandó adatokat, így számomra 100-szor gyorsabb, mint a hadoop. A Spark az Akkát használja a többszálas kezeléshez, végrehajtó állapot kezelése, feladatok ütemezése. A Jetty használatával fájlokat (tégelyek és más fájlok) oszt meg, Http Broadcastot, futtatja a Spark Web UI-t. A Spark nagymértékben konfigurálható, és képes a Hadoop Eco-Systemben már meglévő komponensek felhasználására. Ez lehetővé tette a szikra exponenciális növekedését, és rövid idő alatt sok szervezet már használja is a gyártásban.
Megtekintheti:
a dolgok részletesebb megértése érdekében.