A legjobb válasz
Javaslom, hogy olvassa el a Spark kódjának régebbi verzióit.
Fontolja meg az 0.5 verziót megjelent 2012-ben apache / spark Addigra a Sparknak csak körülbelül 70 forráskódfájlja volt, és ezek a fájlok kicsiek voltak. Vessen egy pillantást az RDD forráskódjára itt: apache / spark Minden olyan egyszerű és tömör.
Ne feledje, hogy a Spark architektúrája nem rendelkezik azóta drámai módon megváltozott. A fejlesztők csak rengeteg hibakezelést, optimalizálást és külső technológiákkal való integrációt adtak hozzá, mint például a Yarn vagy a Kafka.
Ha megérted, hogyan működött a Spark 2012-ben, akkor nem lenne probléma megérteni a Spark működését manapság.
Ezenkívül javaslom, hogy olvassa el ezeket a megjegyzéseket: JerryLead / SparkInternals . Belső architektúra áttekintést nyújtanak a Sparkról.
Válasz
Visszatérve Noam Ben-Ami válaszára – HA, ha végpontok közötti felhasználói vagy, a Spark meglehetősen kimerítő lehet. és nehezen megtanulható.
Még akkor is, ha ismeri a Bash-t, a Python-t és az SQL-t, ez csak a Spark használatának jéghegyének a csúcsa. Ha „végponttól végig” megy a Spark vagy egy Python / SQL parancsfájl elemző, akkor sok olyan összetevőt tartalmaz, amelyek önmagukban is nagy témák, amelyeket meg kell tanulniuk.
Biztos, hogy a Sparkot helyben is használhatja (a laptop) és Hadoop nélkül, de a „való világban” nem így fogja használni a Sparkot. Nagyon jó megtanulni a szintaxist, de ne tévedj, senki nem fogja felvenni a „Spark” -ra ebben az összefüggésben (* szójáték célja).
A Spark használatának teljes oka a teljesítmény és a egy elosztott fájlrendszer, más néven „Big Data” tetején ülsz. Ez azt jelenti, hogy amikor a Spark-feladatokhoz kódot ír, akkor a partíciókat, a csomópontokat, a sorosítást, a JVM-et, a vcore-okat, a végrehajtókat, a memóriát, a memóriát és a lemezt, a keveréseket, a tömörített fájlokat, az oszlopos formátumokat (parketta) és hasonlókat érti. az adatok mozgatása mondjuk az S3-ból az RDD-k, DataFrame-ek, DataSet-ek (csak Java / Scala) és a Spark SQL segítségével a végső adatkészletbe.
Számomra ez sok olyan, mint amikor valaki azt mondaná, hogy tudja: Excel ”, majd megkérdezné tőlük, tudnának-e írni egy alap makrót a semmiből, és megkapják azt a szarvast a fényszórók megjelenésében.
A Spark egy lehetséges vállalkozása a következőket foglalja magában:
- A Hadoop-fürt kiépítése (csomópontok, memória, EC2 példányok stb.)
- YARN config (csomópontok, magok, példányok, végrehajtók, memóriakezelés, illesztőprogramok, felső memória, műsorszórás, a memóriában és tovább) lemezkezelés, stb.) – ezek bármelyike felakaszthatja / megölheti a munkáját, és még triviális adatmennyiséggel sem jut egyetlen lépés tovább, ha ezek bármelyike nem működik, ll az adataival.
- Spark RDD dokumentáció
- Spark DataFrames dokumentáció
- Spark SQL dokumentáció
- Óhatatlanul beírja a kódot A # 3–5, amely feltárja a # 2 problémáit.
- Ezen a ponton valószínűleg legalább Java kódot hibakeresni fog, Python használata esetén pedig py4J átjáró hibákat adattípus problémákhoz Python-nal és adatfolyam-adatfolyamokkal.
Sokan képesek percek alatt írni funkciókat / módszereket RDD-k, DataFrames és Spark SQL ellen, és ha van valamilyen tapasztalatuk a Pythonról és az SQL-ről – talán sőt néhány nap alatt elnyeli az RDD-ket, a DataFrame-eket és az SQL-dokumentációkat – de amikor a Spark-munkád megölik műsorszórás, végrehajtó, feladat vagy memóriahiba miatt – ezek egyikének sem lesz jelentősége. Felveszed a Spark nedves öltönyt, és mélyen elmerülsz a Spark [Java] hasában.