Last Updated: 2021. jan. 25.
A big data developer vagy apache spark developer állásinterjún feltett kérdések a Spark Ecosystem Components alapján a következő kategóriák valamelyikébe sorolhatók: – A Spark Ecosystem Components alapján -.
Mellett, A projekttapasztalatok megjelenítése a következőkben kulcsfontosságú –
|
Az iparág növekvő igényei miatt, a nagy adatok gyorsabb ütemű feldolgozására -Apache Spark hatalmas lendületet vesz a vállalati bevezetés terén. A Hadoop MapReduce jól támogatta a nagy adatok gyors feldolgozásának igényét, de a fejlesztők körében mindig is igény volt rugalmasabb eszközök elsajátítására, hogy lépést tartsanak a közepes méretű nagy adathalmazok felemelkedő piacával, a másodperceken belüli valós idejű adatfeldolgozáshoz.
A gyorsabb nagy adatfeldolgozás lendületének támogatására egyre nagyobb az igény az Apache Spark fejlesztők iránt, akik a Spark legjobb gyakorlatainak megvalósításában szerzett szakértelmüket tudják igazolni – komplex nagy adatmegoldások építéséhez. Együttműködve és a nagyadat-ipari szakértőkkel -a top 50 Apache Spark interjúkérdések és válaszok listáját állítottuk össze, amelyek segítenek a diákoknak/szakembereknek a nagyadat-fejlesztői interjún, és áthidalják a Spark fejlesztők tehetségkínálatát a különböző iparági szegmensekben.
Kattintson ide az 50+ megoldott, végponttól végpontig tartó Big Data és Machine Learning projektmegoldások listájának megtekintéséhez (újrafelhasználható kód + videók)
Az olyan vállalatok, mint az Amazon, a Shopify, az Alibaba és az eBay alkalmazzák az Apache Sparkot a big data telepítéseikhez – a Spark fejlesztők iránti kereslet várhatóan exponenciálisan fog növekedni. A Google Trends megerősíti a Spark vállalati bevezetésének és ismertségének “hoki-pálcikaszerű növekedését” a különböző iparágak szervezetei körében. A Spark azért válik egyre népszerűbbé, mert a Hadoop MapReduce-nál gyorsabban képes kezelni az eseményfolyamokat és feldolgozni a nagy adatokat. 2017 a legjobb alkalom arra, hogy csiszolja Apache Spark készségeit, és adatelemzési szakemberként, adattudósként vagy big data fejlesztőként folytasson gyümölcsöző karriert.
Ezek az Apache Spark projektek segítenek olyan készségek fejlesztésében, amelyek alkalmassá teszik Önt arra, hogy Spark fejlesztői munkakörökre jelentkezzen.
Top 50 Apache Spark interjúkérdés és válasz
A felkészülés nagyon fontos, hogy csökkentse az ideges energiát bármelyik nagyadat-állásinterjún. Függetlenül attól, hogy milyen big data szakértelemmel és készségekkel rendelkezik valaki, minden jelölt retteg a szemtől-szembe big data állásinterjún. Bár nem lehet pontosan megjósolni, hogy milyen kérdéseket fognak feltenni egy big data vagy spark fejlesztői állásinterjún – ezek az Apache spark interjúkérdések és válaszok segíthetnek jobban felkészülni ezekre az interjúkra.
1) Spark vs Hadoop MapReduce összehasonlítása
Kritériumok |
Hadoop MapReduce |
Apache Spark |
Memória |
Nem használja ki maximálisan a hadoop klaszter memóriáját. | Megtakarítja az adatokat a memóriában az RDD-k használatával. |
Lemezhasználat |
A MapReduce lemezorientált. | Apark az adatokat memóriában cache-eli és alacsony késleltetést biztosít. |
Feldolgozás |
Kizárólag kötegelt feldolgozás támogatott | Támogatja a valós idejű feldolgozást a spark streaming segítségével. |
Telepítés |
Hadoophoz kötött. | Nem kötött Hadoophoz. |
Egyszerűség, rugalmasság és teljesítmény a Spark használatának fő előnyei a Hadooppal szemben.
- A Spark 100-szor gyorsabb, mint a Hadoop a nagy adatfeldolgozásban, mivel az adatokat memóriában tárolja, mégpedig úgy, hogy rugalmas elosztott adatbázisokban (Resilient Distributed Databases, RDD) helyezi el őket.
- A Sparkot könnyebb programozni, mivel interaktív móddal rendelkezik.
- Teljes helyreállítást biztosít a lineage graph segítségével, ha valami elromlik.
Refer Spark vs Hadoop
Click here to view 52+ solved, reusable project solutions in Big Data – Spark
2) What is Shark?
A legtöbb adatfelhasználó csak SQL-t ismer és nem ért a programozáshoz. A Shark egy olyan eszköz, amelyet olyan emberek számára fejlesztettek ki, akik adatbázisos háttérrel rendelkeznek – a Scala MLib képességeinek eléréséhez a Hive-hoz hasonló SQL interfészen keresztül. A Shark eszköz segít az adatfelhasználóknak a Hive Sparkon történő futtatásában – kompatibilitást kínálva a Hive metatárolóval, lekérdezésekkel és adatokkal.
3) Soroljon fel néhány olyan felhasználási esetet, amelyek feldolgozásában a Spark felülmúlja a Hadoopot.
- Szenzoradatok feldolgozása -Apache Spark ‘In-memory computing’ itt működik a legjobban, mivel az adatokat különböző forrásokból nyerik le és kombinálják.
- A Sparkot előnyben részesítik a Hadooppal szemben az adatok valós idejű lekérdezéséhez
- Stream feldolgozás – A naplók feldolgozására és a csalások felderítésére az élő streamekben a riasztásokhoz az Apache Spark a legjobb megoldás.
4) Mi az a Sparse Vector?
A sparse vektor két párhuzamos tömbből áll – az egyik az indexekhez, a másik az értékekhez. Ezeket a vektorokat a nem nulla bejegyzések tárolására használják a helytakarékosság érdekében.
5) Mi az RDD?
Az RDD-k (Resilient Distributed Datasets) az Apache Spark alapvető absztrakciói, amelyek a rendszerbe érkező adatokat objektumformátumban reprezentálják. Az RDD-ket memórián belüli számításokhoz használják nagy klasztereken, hibatűrő módon. Az RDD-k csak olvashatóan porciózott, rekordok gyűjteményei, amelyek –
- Immutable – Az RDD-k nem módosíthatók.
- Resilient – Ha a partíciót birtokló egyik csomópont meghibásodik, a másik csomópont átveszi az adatokat.
Build a Big Data Project Portfolio by work on real-time apache spark projects
6) Magyarázza el a transzformációkat és a műveleteket az RDD-k kontextusában.
A transzformációk olyan függvények, amelyeket igény szerint hajtanak végre, hogy egy új RDD-t hozzanak létre. Minden transzformációt akciók követnek. Néhány példa a transzformációkra: map, filter és reduceByKey.
Actions az RDD-számítások vagy transzformációk eredményei. Egy művelet végrehajtása után az adatok az RDD-ből visszakerülnek a helyi gépre. Néhány példa a műveletekre: reduce, collect, first és take.
7) Milyen nyelveket támogat az Apache Spark a big data alkalmazások fejlesztéséhez?
Scala, Java, Python, R és Clojure
8) Lehetséges a Spark segítségével Cassandra adatbázisokban tárolt adatokhoz hozzáférni és elemezni azokat?
Igen, lehetséges, ha a Spark Cassandra Connector-t használja.
9) Lehetséges az Apache Spark futtatása az Apache Mesoson?
Igen, az Apache Spark futtatható a Mesos által kezelt hardveres klasztereken.
10) Magyarázza el az Apache Spark különböző klaszterkezelőit
Az Apache Spark által támogatott 3 különböző klaszterkezelő a következő:
- YARN
- Apache Mesos -Gazdag erőforrás ütemezési képességekkel rendelkezik és jól alkalmas a Spark más alkalmazásokkal együtt történő futtatására. Előnyös, ha több felhasználó futtat interaktív héjakat, mert a parancsok közötti CPU-elosztást skálázza.
- Standalone telepítések – Jól alkalmas új telepítésekhez, amelyek csak futnak és könnyen beállíthatók.
11) Hogyan lehet a Sparkot az Apache Mesoshoz csatlakoztatni?
A Spark és a Mesos összekapcsolásához-
- Konfigurálja a spark driver programot a Mesoshoz való csatlakozáshoz. A Spark bináris csomagnak a Mesos által elérhető helyen kell lennie. (vagy)
- Telepítse az Apache Sparkot ugyanarra a helyre, ahova az Apache Mesos, és konfigurálja a ‘spark.mesos.executor.home’ tulajdonságot úgy, hogy a telepítés helyére mutasson.
12) Hogyan lehet minimalizálni az adatátvitelt a Sparkkal való munka során?
Az adatátvitel minimalizálása és a keverés elkerülése segít a gyors és megbízhatóan futó Spark programok írásában. Az Apache Sparkkal való munka során az adatátvitel minimalizálásának különböző módjai a következők:
- A Broadcast változó használata- A Broadcast változó növeli a kis és nagy RDD-k közötti egyesítések hatékonyságát.
- A halmozók használata – A halmozók segítenek a változók értékeinek párhuzamos frissítésében a végrehajtás során.
- A leggyakoribb módszer a ByKey, repartition vagy bármely más, keverést kiváltó művelet elkerülése.
13) Miért van szükség broadcast változókra az Apache Sparkkal való munka során?
Ezek csak olvasható változók, amelyek minden gépen jelen vannak a memória cache-ben. A Sparkkal való munka során a broadcast változók használata kiküszöböli annak szükségességét, hogy egy változó másolatát minden feladathoz elküldjük, így az adatok gyorsabban feldolgozhatók. A broadcast változók segítenek egy keresési táblázat memórián belüli tárolásában, ami növeli a lekérdezés hatékonyságát az RDD kereséshez képest ().
14) Lehetséges a Spark és a Mesos futtatása a Hadoop mellett?
Igen, lehetséges a Spark és a Mesos futtatása a Hadoop-pal úgy, hogy mindkettőt külön szolgáltatásként indítjuk a gépeken. A Mesos egységes ütemezőként működik, amely a feladatokat vagy a Sparkhoz vagy a Hadoophoz rendeli.
15) Mi az a lineage graph?
A Sparkban lévő RDD-k egy vagy több másik RDD-től függenek. Az RDD-k közötti függőségek ábrázolását lineage gráfnak nevezzük. A lineage graph információkat az egyes RDD-k igény szerinti kiszámításához használják, így amikor a tartós RDD egy része elveszik, az elveszett adatok a lineage graph információk segítségével helyreállíthatók.
16) Hogyan lehet a Sparkban automatikus tisztításokat indítani a felhalmozott metaadatok kezelésére?
A tisztításokat a ‘spark.cleaner.ttl’ vagy a hosszan futó munkák különböző tételekre osztásával és a közbenső eredmények lemezre írásával.
17) Magyarázza el a Spark ökoszisztémát alkotó főbb könyvtárakat
- Spark MLib- Machine learning library in Spark for commonly used learning algorithms like clustering, regression, classification, stb.
- Spark Streaming – Ez a könyvtár valós idejű streaming adatok feldolgozására szolgál.
- Spark GraphX – Spark API gráf párhuzamos számításokhoz olyan alapvető operátorokkal, mint joinVertices, subgraph, aggregateMessages, stb.
- Spark SQL – Segít SQL-szerű lekérdezések végrehajtásában Spark adatokon szabványos vizualizációs vagy BI eszközökkel.
18) Milyen előnyökkel jár a Spark használata az Apache Mesos-szal?
Skálázható particionálást tesz lehetővé a különböző Spark példányok között, valamint dinamikus particionálást a Spark és más big data keretrendszerek között.
19) Mi a jelentősége a Sliding Window műveletnek?
A Sliding Window szabályozza az adatcsomagok továbbítását a különböző számítógépes hálózatok között. A Spark Streaming könyvtár ablakos számításokat biztosít, ahol az RDD-ken végzett transzformációkat egy csúszó adatablakon keresztül alkalmazzák. Amikor az ablak csúszik, az adott ablakba eső RDD-ket kombinálják és működtetik, hogy az ablakos DStream új RDD-ket hozzanak létre.
20) Mi az a DStream?
A diszkretizált folyam egy adatfolyamot reprezentáló rugalmas elosztott adatbázisok sorozata. A DStreamek különböző forrásokból hozhatók létre, mint például az Apache Kafka, a HDFS és az Apache Flume. A DStream-eknek két művelete van –
- Transzformációk, amelyek egy új DStream-et hoznak létre.
- Kimeneti műveletek, amelyek adatokat írnak egy külső rendszerbe.
21) Spark alkalmazások futtatásakor szükséges-e a Spark-ot a YARN fürt összes csomópontjára telepíteni?
A Sparkot nem kell telepíteni, ha egy feladatot YARN vagy Mesos alatt futtatunk, mert a Spark a YARN vagy Mesos fürtök tetején is futtatható anélkül, hogy a fürtöt bármilyen változás érintené.
22) Mi az a Catalyst keretrendszer?
A Catalyst keretrendszer egy új optimalizációs keretrendszer, amely jelen van a Spark SQL-ben. Lehetővé teszi a Spark számára az SQL-lekérdezések automatikus átalakítását új optimalizációk hozzáadásával, hogy gyorsabb feldolgozórendszert építsen ki.
23) Nevezzen meg néhány vállalatot, amelyek az Apache Sparkot termelésben használják.
Pinterest, Conviva, Shopify, Open Table
24) Melyik Spark könyvtár teszi lehetővé a megbízható fájlmegosztást memória sebességgel különböző klaszter-keretek között?
Tachyon
Dolgozzon érdekes adattudományi projekteken a Spark segítségével, hogy lenyűgöző projektportfóliót építsen!
25) Miért használják a BlinkDB-t?
A BlinkDB egy lekérdezőmotor interaktív SQL-lekérdezések végrehajtására hatalmas adatmennyiségeken, és értelmes hibasávokkal jelölt lekérdezési eredményeket ad ki. A BlinkDB segít a felhasználóknak egyensúlyt teremteni a “lekérdezési pontosság” és a válaszidő között.
26) Hogyan lehet összehasonlítani a Hadoopot és a Sparkot a könnyű használat szempontjából?
A Hadoop MapReduce Java nyelven történő programozást igényel, ami nehéz, bár a Pig és a Hive jelentősen megkönnyíti ezt. A Pig és a Hive szintaxisának megtanulása időt vesz igénybe. A Spark interaktív API-kkal rendelkezik különböző nyelvekhez, mint például Java, Python vagy Scala, és tartalmazza a Sharkot is, azaz a Spark SQL-t az SQL szerelmeseinek – így viszonylag könnyebben használható, mint a Hadoop.
27) Milyen gyakori hibákat követnek el a fejlesztők a Spark alkalmazások futtatása során?
A fejlesztők gyakran elkövetik azt a hibát, hogy-
- A webszolgáltatást többször is leütik több fürt használatával.
- Mindent a helyi csomóponton futtatnak ahelyett, hogy elosztanák.
A fejlesztőknek ezzel óvatosnak kell lenniük, mivel a Spark memóriát használ a feldolgozáshoz.
28) Mi az előnye a Parquet fájlnak?
A Parquet fájl egy oszlopos formátumú fájl, amely segít –
- Limitálja az I/O műveleteket
- Kisebb helyet foglal
- Kizárólag a szükséges oszlopokat hívja le.
29) Milyen különböző adatforrások állnak rendelkezésre a SparkSQL-ben?
- Parquet fájl
- JSON adathalmazok
- Hive táblák
30) Hogyan használja a Spark a Hadoopot?
A Spark saját klaszterkezelő számítással rendelkezik és elsősorban a Hadoopot használja tárolásra.
A megoldott Big Data projektek teljes listája – KATTINTSON IDE
31) Melyek az Apache Spark legfontosabb jellemzői, amelyek tetszenek?
- A Spark fejlett analitikai lehetőségeket kínál, mint például gráf algoritmusok, gépi tanulás, streaming adatok, stb
- Ez több nyelven, például Java, Scala, Python és R
- Ez jó teljesítménynövekedést biztosít, mivel segít egy alkalmazás futtatásában a Hadoop fürtben tízszer gyorsabban a lemezen és százszor gyorsabban a memóriában.
32) Mit értesz Pair RDD alatt?
A Sparkban a kulcs/érték párok segítségével speciális műveleteket lehet végrehajtani az RDD-ken, és az ilyen RDD-ket Pair RDD-knek nevezzük. A Pair RDD-k lehetővé teszik a felhasználók számára az egyes kulcsokhoz való párhuzamos hozzáférést. Rendelkeznek egy reduceByKey () metódussal, amely az egyes kulcsok alapján gyűjti össze az adatokat, és egy join () metódussal, amely az azonos kulccsal rendelkező elemek alapján egyesíti a különböző RDD-ket.
33) Melyiket választja egy projekthez -Hadoop MapReduce vagy Apache Spark?
A válasz erre a kérdésre az adott projektforgatókönyvtől függ – hiszen ismert, hogy a Spark a hálózati és lemezes I/O helyett a memóriát használja. A Spark azonban nagy mennyiségű RAM-ot használ, és dedikált gépet igényel a hatékony eredmények előállításához. Így a Hadoop vagy a Spark használatára vonatkozó döntés dinamikusan változik a projekt követelményeitől és a szervezet költségvetésétől függően.
34) Magyarázza el a különböző típusú transzformációkat a DStreams-en?
- Stateless Transformations- A köteg feldolgozása nem függ az előző köteg kimenetétől. Példák – map (), reduceByKey (), filter ().
- Stateful Transformations- A köteg feldolgozása az előző köteg köztes eredményeitől függ. Példák -Transzformációk, amelyek a csúszóablakoktól függenek.
35) Magyarázza el az Apache Spark népszerű felhasználási eseteit
Az Apache Sparkot elsősorban
- Iteratív gépi tanulásra használják.
- Interaktív adatelemzés és feldolgozás.
- Stream processing
- Sensor data processing
36) Alkalmas-e az Apache Spark a megerősítéses tanuláshoz?
Nem. Az Apache Spark csak olyan egyszerű gépi tanulási algoritmusokhoz működik jól, mint a klaszterezés, regresszió, osztályozás.
37) Mi a Spark Core?
Ez rendelkezik a Spark összes alapvető funkciójával, mint – memóriakezelés, hibajavítás, interakció a tárolórendszerekkel, feladatok ütemezése stb.
38) Hogyan lehet eltávolítani a bármely más RDD-ben jelen lévő kulcsú elemeket?
A subtractByKey () függvényt használja
39) Mi a különbség a persist() és a cache() között?
A persist () lehetővé teszi a felhasználó számára a tárolási szint megadását, míg a cache () az alapértelmezett tárolási szintet használja.
40) Mik a különböző perszisztencia szintek az Apache Sparkban?
Apache Spark automatikusan perszisztálja a különböző keverési műveletekből származó köztes adatokat, azonban gyakran javasolt, hogy a felhasználók hívják meg a persist () metódust az RDD-n, ha újrafelhasználást terveznek. A Spark különböző perzisztencia szintekkel rendelkezik az RDD-k lemezen vagy memóriában, illetve a kettő kombinációjaként, különböző replikációs szintekkel történő tárolásához.
A különböző tárolási/megmaradási szintek a Sparkban a következők: –
- MEMORY_ONLY
- MEMORY_ONLY_SER
- MEMORY_AND_DISK
- MEMORY_AND_DISK_SER, DISK_ONLY
- OFF_HEAP
41) Hogyan kezeli a Spark a felügyeletet és a naplózást Standalone módban?
A Spark rendelkezik egy webes felhasználói felülettel a fürt felügyeletére standalone módban, amely megjeleníti a fürt és a feladatok statisztikáit. Az egyes munkák naplókimenete a slave csomópontok munkakönyvtárába íródik.
42) Az Apache Spark biztosít ellenőrzési pontozást?
A lineage-grafikonok mindig hasznosak az RDD-k hiba utáni helyreállításához, de ez általában időigényes, ha az RDD-k hosszú lineage-láncokkal rendelkeznek. A Spark rendelkezik egy API-val az ellenőrző pontozáshoz, azaz egy REPLICATE flaggel a perzisztenciához. Azonban a döntést, hogy mely adatokat kell ellenőrizni – a felhasználó dönti el. Az ellenőrző pontok akkor hasznosak, ha a lineage-gráfok hosszúak és széles függőségekkel rendelkeznek.
43) Hogyan lehet Spark feladatokat indítani a Hadoop MapReduce-on belül?
A SIMR (Spark in MapReduce) használatával a felhasználók bármilyen Spark feladatot futtathatnak a MapReduce-on belül anélkül, hogy adminisztrátori jogokat igényelnének.
44) Hogyan használja a Spark az Akkát?
A Spark alapvetően ütemezésre használja az Akkát. Minden munkás a regisztráció után kér egy feladatot a mesternek. A mester csak kiosztja a feladatot. Itt a Spark az Akka-t használja a munkások és a mesterek közötti üzenetküldésre.
45) Hogyan érhető el magas rendelkezésre állás az Apache Sparkban?
- Egyetlen csomópont helyreállításának megvalósítása helyi fájlrendszerrel
- StandBy mesterek használata az Apache ZooKeeperrel.
46) A Hadoop replikációt használ a hibatűrés eléréséhez. Hogyan valósul meg ez az Apache Sparkban?
Az Apache Spark adattárolási modellje RDD-ken alapul. Az RDD-k segítenek a hibatűrés elérésében a lineage révén. Az RDD mindig rendelkezik azzal az információval, hogy más adathalmazokból építkezik. Ha egy RDD bármelyik partíciója hiba miatt elveszik, a lineage csak az adott elveszett partíciót segít felépíteni.
47) Ismertesse az elosztott Spark-alkalmazás alapvető összetevőit.
- Driver- A program main () metódusát futtató folyamat, amely RDD-ket hoz létre, és átalakításokat, műveleteket végez rajtuk.
- Executor -A Spark feladat egyes feladatait futtató munkafolyamatok.
- Cluster Manager-A Spark pluggable komponense, az Executorok és Driverek indítására. A fürtkezelő lehetővé teszi, hogy a Spark más külső kezelők, például az Apache Mesos vagy a YARN tetején fusson.
48) Mit ért Lazy Evaluation alatt?
A Spark intellektuálisan működik az adatokon. Amikor azt mondod a Sparknak, hogy operáljon egy adott adathalmazon, akkor megfogadja az utasításokat, és feljegyzi, hogy ne felejtse el – de nem csinál semmit, hacsak nem kéri a végeredményt. Amikor egy olyan transzformációt, mint a map (), meghívunk egy RDD-n – a műveletet nem hajtja végre azonnal. A Sparkban a transzformációk nem kerülnek kiértékelésre, amíg nem hajtunk végre egy műveletet. Ez segít optimalizálni a teljes adatfeldolgozási munkafolyamatot.
49) Munkás csomópont definiálása.
Munkás csomópontnak nevezhetünk egy olyan csomópontot, amely képes a Spark alkalmazás kódjának futtatására egy fürtben. Egy munkáscsomóponthoz több munkás is tartozhat, amelyet a spark-env.sh fájlban a SPARK_ WORKER_INSTANCES tulajdonság beállításával konfigurálhatunk. Csak egy munkás indul el, ha a SPARK_ WORKER_INSTANCES tulajdonság nincs definiálva.
50) Mit ért SchemaRDD alatt?
Egy RDD, amely sorobjektumokból áll (egyszerű karakterlánc- vagy egész számtömbök körüli burkolatok) az egyes oszlopokban lévő adatok típusára vonatkozó sémainformációkkal.
51) Milyen hátrányai vannak az Apache Spark használatának a Hadoop MapReduce-szal szemben?
Az Apache Spark nem skálázódik jól számításigényes feladatokhoz, és nagyszámú rendszererőforrást fogyaszt. Az Apache Spark in-memory képessége időnként komoly akadálya a nagy adatok költséghatékony feldolgozásának. Emellett a Sparknak saját fájlkezelő rendszere is van, ezért integrálni kell más felhőalapú adatplatformokkal vagy az apache hadooppal.
52) Szükséges-e a Spark telepítése egy YARN-fürt minden csomópontjára az Apache Spark on YARN futtatása során ?
Nem , ez nem szükséges, mert az Apache Spark a YARN tetején fut.
53) Mit ért az Executor Memory alatt egy Spark alkalmazásban?
Minden spark alkalmazásnak ugyanaz a fix heap mérete és fix számú magja van egy spark végrehajtó számára. A heap mérete az, amit Spark végrehajtó memóriának nevezünk, amit a -executor-memory flag spark.executor.memory tulajdonságával szabályozunk. Minden spark alkalmazásnak minden egyes munkás csomóponton lesz egy végrehajtója. A végrehajtói memória alapvetően azt méri, hogy az alkalmazás mennyi memóriát használ a munkás csomóponton.
54) Mit csinál a Spark motor?
A Spark motor ütemezi, elosztja és felügyeli az adatalkalmazást a spark fürtön belül.
55) Mitől jó az Apache Spark az olyan alacsony késleltetésű munkaterheléseknél, mint a gráffeldolgozás és a gépi tanulás?
Apache Spark az adatokat memóriában tárolja a gyorsabb modellépítés és képzés érdekében. A gépi tanulási algoritmusok több iterációt igényelnek az eredményül kapott optimális modell létrehozásához, és hasonlóan a gráf algoritmusok is végigjárják az összes csomópontot és élt. ezek az alacsony késleltetésű, több iterációt igénylő munkaterhelések nagyobb teljesítményt eredményezhetnek. A kevesebb lemezelérés és az ellenőrzött hálózati forgalom óriási különbséget jelent, ha sok adatot kell feldolgozni.
56) Szükséges a Hadoop indítása bármely Apache Spark alkalmazás futtatásához?
A Hadoop indítása nem kötelező bármely Spark alkalmazás futtatásához. Mivel az Apache Sparkban nincs külön tároló, a Hadoop HDFS-t használja, de ez nem kötelező. Az adatok tárolhatók a helyi fájlrendszerben, betölthetők a helyi fájlrendszerből és feldolgozhatók.
57) Mi az alapértelmezett párhuzamossági szint az Apache Sparkban?
Ha a felhasználó nem adja meg kifejezetten, akkor a partíciók számát tekintjük az Apache Sparkban alapértelmezett párhuzamossági szintnek.
58) Magyarázza el egy Spark program általános munkafolyamatát
- A Spark program első lépése a bemeneti RDD-k létrehozása külső adatokból.
- A különböző RDD-transzformációk, például filter() használata az új, átalakított RDD-k létrehozásához az üzleti logika alapján.
- persist() minden olyan köztes RDD-t, amelyet a jövőben esetleg újra kell használni.
- A különböző RDD-akciók(), például first(), count() elindítása a párhuzamos számítás megkezdéséhez , amelyet ezután a Spark optimalizál és végrehajt.
59) Egy adott Spark programban hogyan azonosítja, hogy egy adott művelet transzformáció vagy akció?
A műveletet a visszatérési típus alapján lehet azonosítani –
i) A művelet akció, ha a visszatérési típus nem RDD.
ii) A művelet transzformáció, ha a visszatérési típus megegyezik az RDD-vel.
60) Ön szerint mi az apache spark fejlesztők gyakori hibája a spark használatakor?
- A shuffle blokkok előírt méretének betartása.
- A spark fejlesztők gyakran követnek el hibákat az irányított aciklikus gráfok (DAG-ok) kezelésében.
61) Tegyük fel, hogy van egy ProjectPrordd nevű RDD, amely egy hatalmas számlistát tartalmaz. A következő szikra kódot írjuk az átlag kiszámítására –
def ProjectProAvg(x, y):
return (x+y)/2.0;
avg = ProjectPrordd.reduce(ProjectProAvg);
Mi a baj a fenti kóddal, és hogyan javítjuk ki?
Az átlagfüggvény nem kommutatív és nem asszociatív. Az átlag kiszámításának legjobb módja, ha először összegezzük, majd elosztjuk a számlálóval az alábbiak szerint –
def sum(x, y):
return x+y;
total =ProjectPrordd.reduce(sum);
avg = total / ProjectPrordd.count();
A fenti kód azonban túlcsorduláshoz vezethet, ha az összeg nagy lesz. Ezért az átlag kiszámításának legjobb módja az, hogy minden számot elosztunk a számlálószámmal, majd összeadjuk az alábbiak szerint –
cnt = ProjectPrordd.count();
def divideByCnt(x):
return x/cnt;
myrdd1 = ProjectPrordd.map(divideByCnt);
avg = ProjectPrordd.reduce(sum);
Q. Tegyük fel, hogy van egy hatalmas számlistám egy fájlban a HDFS-ben. Minden sorban van egy szám. és szeretnék kom
Spark SQL interjúkérdések
1) Magyarázza el a Spark SQL és a Hive közötti különbséget.
- A Spark SQL gyorsabb, mint a Hive.
- Minden Hive lekérdezés könnyen végrehajtható Spark SQL-ben, de fordítva nem igaz.
- A Spark SQL egy könyvtár, míg a Hive egy keretrendszer.
- A Spark SQL-ben nem kötelező metastore-t létrehozni, de a Hive metastore-t kötelező létrehozni.
- A Spark SQL automatikusan kikövetkezteti a sémát, míg a Hive-ban a sémát explicit módon kell deklarálni.
Spark Streaming interjúkérdések
1) Nevezzen meg néhány forrást, ahonnan a Spark streaming komponens valós idejű adatokat tud feldolgozni.
Apache Flume, Apache Kafka, Amazon Kinesis
2) Nevezzen meg néhány vállalatot, amelyek már használják a Spark Streaminget.
Uber, Netflix, Pinterest.
3) Mi az alsó absztrakciós réteg a Spark Streaming API-ban?
DStream.
4) Mit ért a Spark Streamingben a vevőkészülékek alatt?
A vevőkészülékek a Spark Streaming speciális egységei, amelyek különböző adatforrásokból fogyasztanak adatokat és továbbítják azokat az Apache Sparkba. A vevőket általában a streaming-kontextusok hozzák létre hosszú futású feladatokként különböző végrehajtókon, és úgy ütemezik, hogy körkörös módon működjenek, és minden egyes vevő egyetlen magot foglaljon el.
A big data közösséget arra kérjük, hogy ossza meg a leggyakrabban feltett Apache Spark interjúkérdéseket és válaszokat az alábbi megjegyzésekben – hogy megkönnyítse a big data állásinterjúkat minden leendő elemző szakember számára.
5) Hogyan számolja ki a végrehajtók számát, amelyek az Apache Spark valós idejű feldolgozásához szükségesek? Milyen tényezőket kell figyelembe venni a valós idejű feldolgozáshoz szükséges csomópontok számának meghatározásához?
A csomópontok számát a hardver teljesítményértékelésével és több tényező, például az optimális átviteli sebesség (hálózati sebesség), a memóriahasználat, a használt végrehajtási keretrendszerek (YARN, Standalone vagy Mesos) és a Sparkkal együtt az adott végrehajtási keretrendszerekben futó egyéb feladatok figyelembevételével lehet meghatározni.
6) Mi a különbség a Spark Transform in DStream és a map között?
tranform függvény a spark streamingben lehetővé teszi a fejlesztők számára, hogy Apache Spark transzformációkat használjanak a stream mögöttes RDD-ken. map függvény a hadoopban egy elem-elem transzformációra szolgál, és a transform segítségével lehet megvalósítani. ideális esetben a map a Dstream elemein dolgozik, a transform pedig lehetővé teszi a fejlesztők számára, hogy a DStream RDD-kkel dolgozzanak. map egy elemi transzformáció, míg a transform egy RDD transzformáció.
Check Out Top Scala Interview Questions for Spark Developers.