Ultima actualizare: 25 ian 2021
Întrebările adresate la un interviu pentru un post de dezvoltator de big data sau de dezvoltator apache spark se pot încadra într-una dintre următoarele categorii, pe baza componentelor ecosistemului Spark –
În plus, afișarea experienței de proiect în următoarele domenii este esențială –
|
Cu o cerere din ce în ce mai mare din partea industriei, de a procesa date mari într-un ritm mai rapid -Apache Spark capătă un impuls uriaș atunci când vine vorba de adoptarea în întreprinderi. Hadoop MapReduce a susținut bine nevoia de procesare rapidă a datelor mari, dar a existat întotdeauna o nevoie în rândul dezvoltatorilor de a învăța instrumente mai flexibile pentru a ține pasul cu piața superioară a seturilor de date mari de dimensiuni medii, pentru procesarea datelor în timp real în câteva secunde.
Pentru a susține impulsul pentru procesarea mai rapidă a datelor mari, există o cerere tot mai mare de dezvoltatori Apache Spark care își pot valida expertiza în implementarea celor mai bune practici pentru Spark – pentru a construi soluții complexe de date mari. În colaborare cu și experții din industria de date mari -am curatoriat o listă de top 50 de întrebări și răspunsuri la interviuri Apache Spark care îi vor ajuta pe studenți/profesioniști să dea lovitura la un interviu de dezvoltator de date mari și să acopere oferta de talente pentru dezvoltatorii Spark în diverse segmente industriale.
Click aici pentru a vizualiza o listă de peste 50 de soluții de proiecte Big Data și Machine Learning rezolvate de la un capăt la altul (cod reutilizabil + videoclipuri)
Companii precum Amazon, Shopify, Alibaba și eBay adoptă Apache Spark pentru implementările lor de big data – se așteaptă ca cererea de dezvoltatori Spark să crească exponențial. Google Trends confirmă „o creștere asemănătoare cu cea a unui baton de hochei” în ceea ce privește adoptarea și conștientizarea Spark la nivel de întreprindere în rândul organizațiilor din diverse industrii. Spark devine popular datorită capacității sale de a gestiona fluxul de evenimente și de a procesa date mari mai rapid decât Hadoop MapReduce. 2017 este cel mai bun moment pentru a vă perfecționa abilitățile Apache Spark și pentru a urma o carieră fructuoasă ca profesionist de analiză a datelor, om de știință de date sau dezvoltator de date mari.
Aceste proiecte Apache Spark vă vor ajuta să vă dezvoltați abilitățile care vă vor face eligibili pentru a aplica pentru rolurile de muncă de dezvoltator Spark.
Top 50 de întrebări și răspunsuri la interviuri Apache Spark
Pregătirea este foarte importantă pentru a reduce energia nervoasă la orice interviu de angajare în domeniul big data. Indiferent de expertiza și abilitățile big data pe care le posedă cineva, fiecare candidat se teme de interviul de angajare big data față în față. Deși nu există nicio modalitate de a prezice cu exactitate ce întrebări vor fi puse la orice interviu de angajare pentru big data sau dezvoltator Spark – aceste întrebări și răspunsuri la interviurile de interviu Apache Spark ar putea să vă ajute să vă pregătiți mai bine pentru aceste interviuri.
1) Comparați Spark vs Hadoop MapReduce
Criterii |
Hadoop MapReduce |
Apache Spark |
Memorie |
Nu exploatează la maximum memoria clusterului hadoop. | Salvează datele în memorie cu ajutorul RDD-urilor. |
Utilizarea discului |
MapReduce este orientat pe disc. | Spark memorează datele în memorie și asigură o latență scăzută. |
Procesare |
Se suportă doar procesarea pe loturi | Suportă procesarea în timp real prin Spark streaming. |
Instalare |
Este legat de Hadoop. | Nu este legat de Hadoop. |
Simplicitatea, flexibilitatea și performanța sunt principalele avantaje ale utilizării Spark față de Hadoop.
- Spark este de 100 de ori mai rapid decât Hadoop pentru procesarea datelor mari, deoarece stochează datele în memorie, plasându-le în baze de date distribuite rezistente (RDD).
- Spark este mai ușor de programat, deoarece vine cu un mod interactiv.
- Aprovizionează o recuperare completă folosind graficul lineage ori de câte ori ceva nu merge bine.
Referință Spark vs Hadoop
Click aici pentru a vedea 52+ soluții de proiect rezolvate și reutilizabile în Big Data – Spark
2) Ce este Shark?
Majoritatea utilizatorilor de date cunosc doar SQL și nu se pricep la programare. Shark este un instrument, dezvoltat pentru persoanele care provin din domeniul bazelor de date – pentru a accesa capabilitățile Scala MLib prin intermediul unei interfețe SQL de tip Hive. Instrumentul Shark ajută utilizatorii de date să ruleze Hive pe Spark – oferind compatibilitate cu metastorele, interogările și datele Hive.
3) Enumerați câteva cazuri de utilizare în care Spark depășește Hadoop în procesare.
- Prelucrarea datelor senzoriale -Apache Spark’s „In-memory computing” funcționează cel mai bine aici, deoarece datele sunt recuperate și combinate din diferite surse.
- Spark este preferat lui Hadoop pentru interogarea în timp real a datelor
- Procesarea fluxurilor de date – Pentru procesarea jurnalelor și detectarea fraudelor în fluxurile live pentru alerte, Apache Spark este cea mai bună soluție.
4) Ce este un vector împrăștiat?
Un vector împrăștiat are două matrici paralele – una pentru indici și cealaltă pentru valori. Acești vectori sunt utilizați pentru stocarea intrărilor care nu sunt egale cu zero pentru a economisi spațiu.
5) Ce este RDD?
RDD-urile (Resilient Distributed Datasets) sunt o abstracțiune de bază în Apache Spark care reprezintă datele care intră în sistem în format obiect. RDD-urile sunt utilizate pentru calcule în memorie pe clustere mari, într-o manieră tolerantă la erori. RDD-urile sunt porțiuni numai pentru citire, colecții de înregistrări, care sunt –
- Immutabile – RDD-urile nu pot fi modificate.
- Rezistente – Dacă un nod care deține partiția cedează, celălalt nod preia datele.
Constituiți un portofoliu de proiecte Big Data lucrând la proiecte apache spark în timp real
6) Explicați despre transformări și acțiuni în contextul RDD-urilor.
Transformările sunt funcții executate la cerere, pentru a produce un nou RDD. Toate transformările sunt urmate de acțiuni. Câteva exemple de transformări includ map, filter și reduceByKey.
Acțiunile sunt rezultatele calculelor sau transformărilor RDD. După ce se efectuează o acțiune, datele din RDD se mută înapoi la mașina locală. Câteva exemple de acțiuni includ reduce, collect, first și take.
7) Care sunt limbajele acceptate de Apache Spark pentru dezvoltarea aplicațiilor big data?
Scala, Java, Python, R și Clojure
8) Puteți utiliza Spark pentru a accesa și analiza datele stocate în bazele de date Cassandra?
Da, este posibil dacă utilizați Spark Cassandra Connector.
9) Este posibil să rulați Apache Spark pe Apache Mesos?
Da, Apache Spark poate fi rulat pe clusterele hardware gestionate de Mesos.
10) Explicați despre diferiții manageri de clustere din Apache Spark
Cei 3 manageri de clustere diferiți suportați în Apache Spark sunt:
- YARN
- Apache Mesos -Dispune de capacități bogate de planificare a resurselor și este bine adaptat pentru a rula Spark împreună cu alte aplicații. Este avantajos atunci când mai mulți utilizatori rulează shell-uri interactive, deoarece redimensionează alocarea CPU între comenzi.
- Dezvoltări Standalone -Este bine adaptat pentru noile implementări care rulează doar și sunt ușor de configurat.
11) Cum poate fi conectat Spark la Apache Mesos?
Pentru a conecta Spark cu Mesos-
- Configurați programul driver Spark pentru a se conecta la Mesos. Pachetul binar Spark trebuie să se afle într-o locație accesibilă de către Mesos. (sau)
- Instalați Apache Spark în aceeași locație cu cea a Apache Mesos și configurați proprietatea ‘spark.mesos.executor.home’ pentru a indica locația în care este instalat.
12) Cum puteți minimiza transferurile de date atunci când lucrați cu Spark?
Minimizarea transferurilor de date și evitarea shuffling-ului ajută la scrierea de programe Spark care rulează într-un mod rapid și fiabil. Diferitele moduri în care pot fi minimizate transferurile de date atunci când se lucrează cu Apache Spark sunt:
- Utilizarea variabilei de difuzare- Variabila de difuzare îmbunătățește eficiența îmbinărilor între RDD-uri mici și mari.
- Utilizarea acumulatorilor – Acumulatorii ajută la actualizarea valorilor variabilelor în paralel în timpul execuției.
- Cel mai comun mod este de a evita operațiile ByKey, repartition sau orice alte operații care declanșează shuffle-uri.
13) De ce este nevoie de variabile de difuzare atunci când se lucrează cu Apache Spark?
Este vorba de variabile numai pentru citire, prezente în memoria cache în memorie pe fiecare mașină. Atunci când se lucrează cu Spark, utilizarea variabilelor de difuzare elimină necesitatea de a livra copii ale unei variabile pentru fiecare sarcină, astfel încât datele pot fi procesate mai rapid. Variabilele de difuzare ajută la stocarea unui tabel de căutare în interiorul memoriei, ceea ce sporește eficiența recuperării în comparație cu o căutare RDD ().
14) Este posibilă rularea Spark și Mesos împreună cu Hadoop?
Da, este posibilă rularea Spark și Mesos împreună cu Hadoop prin lansarea fiecăreia dintre acestea ca serviciu separat pe mașini. Mesos acționează ca un planificator unificat care atribuie sarcini fie lui Spark, fie lui Hadoop.
15) Ce este graficul de genealogie?
RDD-urile din Spark, depind de unul sau mai multe alte RDD-uri. Reprezentarea dependențelor dintre RDD-uri este cunoscută sub numele de graf de linie (lineage graph). Informațiile din graficul de lineaj sunt utilizate pentru a calcula fiecare RDD la cerere, astfel încât, ori de câte ori se pierde o parte din RDD-ul persistent, datele pierdute pot fi recuperate utilizând informațiile din graficul de lineaj.
16) Cum puteți declanșa curățările automate în Spark pentru a gestiona metadatele acumulate?
Puteți declanșa curățările prin setarea parametrului ‘spark.cleaner.ttl’ sau prin împărțirea lucrărilor care rulează mult timp în loturi diferite și prin scrierea rezultatelor intermediare pe disc.
17) Explicați despre bibliotecile majore care constituie ecosistemul Spark
- Spark MLib- Biblioteca de învățare automată în Spark pentru algoritmi de învățare utilizați în mod obișnuit, cum ar fi clusterizarea, regresia, clasificarea etc.
- Spark Streaming – Această bibliotecă este utilizată pentru a procesa date în flux în timp real.
- Spark GraphX – API Spark pentru calcule paralele pe grafuri cu operatori de bază cum ar fi joinVertices, subgraph, aggregateMessages etc.
- Spark SQL – Ajută la executarea de interogări de tip SQL pe datele Spark folosind instrumente standard de vizualizare sau BI.
18) Care sunt avantajele utilizării Spark cu Apache Mesos?
Realizează o partiționare scalabilă între diverse instanțe Spark și o partiționare dinamică între Spark și alte cadre de date mari.
19) Care este semnificația operațiunii Sliding Window?
Sliding Window controlează transmiterea pachetelor de date între diverse rețele de calculatoare. Biblioteca Spark Streaming oferă calcule cu fereastră în care transformările asupra RDD-urilor sunt aplicate pe o fereastră glisantă de date. Ori de câte ori fereastra alunecă, RDD-urile care se încadrează în fereastra respectivă sunt combinate și operate pentru a produce noi RDD-uri ale DStream-ului cu fereastră.
20) Ce este un DStream?
Discretized Stream este o secvență de baze de date distribuite reziliente care reprezintă un flux de date. DStream-urile pot fi create din diverse surse, cum ar fi Apache Kafka, HDFS și Apache Flume. DStreams au două operații –
- Transformări care produc un nou DStream.
- Operații de ieșire care scriu date într-un sistem extern.
21) Atunci când se execută aplicații Spark, este necesar să se instaleze Spark pe toate nodurile clusterului YARN?
Nu este necesar să se instaleze Spark atunci când se execută o sarcină sub YARN sau Mesos, deoarece Spark se poate executa deasupra clusterelor YARN sau Mesos fără a afecta nicio modificare a clusterului.
22) Ce este cadrul Catalyst?
Cadrul Catalyst este un nou cadru de optimizare prezent în Spark SQL. Acesta permite Spark să transforme automat interogările SQL prin adăugarea de noi optimizări pentru a construi un sistem de procesare mai rapid.
23) Numiți câteva companii care utilizează Apache Spark în producție.
Pinterest, Conviva, Shopify, Open Table
24) Ce bibliotecă Spark permite partajarea fiabilă a fișierelor la viteza memoriei între diferite cadre de cluster?
Tachyon
Lucrați la proiecte interesante de știință a datelor folosind Spark pentru a construi un portofoliu impresionant de proiecte!
25) De ce se folosește BlinkDB?
BlinkDB este un motor de interogare pentru executarea interogărilor SQL interactive pe volume uriașe de date și redă rezultatele interogărilor marcate cu bare de eroare semnificative. BlinkDB ajută utilizatorii să echilibreze „acuratețea interogării” cu timpul de răspuns.
26) Cum puteți compara Hadoop și Spark în ceea ce privește ușurința de utilizare?
Hadoop MapReduce necesită programare în Java, ceea ce este dificil, deși Pig și Hive ușurează considerabil acest lucru. Învățarea sintaxei Pig și Hive necesită timp. Spark are API-uri interactive pentru diferite limbaje precum Java, Python sau Scala și include, de asemenea, Shark, adică Spark SQL pentru iubitorii de SQL – ceea ce îl face comparativ mai ușor de utilizat decât Hadoop.
27) Care sunt greșelile frecvente pe care le fac dezvoltatorii atunci când rulează aplicații Spark?
Dezvoltatorii fac deseori greșeala de a-
- Căuta serviciul web de mai multe ori prin utilizarea mai multor clustere.
- Executa totul pe nodul local în loc să îl distribuie.
Dezvoltatorii trebuie să fie atenți la acest lucru, deoarece Spark utilizează memoria pentru procesare.
28) Care este avantajul unui fișier Parquet?
Fisierul Parquet este un fișier în format columnar care ajută la –
- Limitarea operațiunilor de I/O
- Consumă mai puțin spațiu
- Căutarea doar a coloanelor necesare.
29) Care sunt diferitele surse de date disponibile în SparkSQL?
- Fișier Parquet
- JSON Dataset-uri
- Tabele Hive
30) Cum utilizează Spark Hadoop?
Spark are propriul calcul de gestionare a clusterului și utilizează în principal Hadoop pentru stocare.
Pentru lista completă de proiecte Big Data rezolvate – CLICK AICI
31) Care sunt caracteristicile cheie ale Apache Spark care vă plac?
- Spark oferă opțiuni analitice avansate, cum ar fi algoritmi grafici, învățare automată, streaming de date etc
- Acesta are API-uri integrate în mai multe limbaje, cum ar fi Java, Scala, Python și R
- Acesta are câștiguri bune de performanță, deoarece ajută la rularea unei aplicații în clusterul Hadoop de zece ori mai rapid pe disc și de 100 de ori mai rapid în memorie.
32) Ce înțelegeți prin Pair RDD?
Operațiile speciale pot fi efectuate pe RDD-uri în Spark folosind perechi cheie/valoare și astfel de RDD-uri sunt denumite Pair RDD-uri. Pair RDDs permit utilizatorilor să acceseze fiecare cheie în paralel. Acestea au o metodă reduceByKey () care colectează datele pe baza fiecărei chei și o metodă join () care combină diferite RDD-uri împreună, pe baza elementelor care au aceeași cheie.
33) Pe care dintre acestea o veți alege pentru un proiect -Hadoop MapReduce sau Apache Spark?
Răspunsul la această întrebare depinde de scenariul proiectului dat – după cum se știe, Spark utilizează memoria în loc de rețeaua și I/O pe disc. Cu toate acestea, Spark utilizează o cantitate mare de memorie RAM și necesită o mașină dedicată pentru a produce rezultate eficiente. Așadar, decizia de a utiliza Hadoop sau Spark variază în mod dinamic în funcție de cerințele proiectului și de bugetul organizației.
34) Explicați despre diferitele tipuri de transformări pe DStreams?
- Transformări nestaționare- Prelucrarea lotului nu depinde de rezultatul lotului anterior. Exemple – map (), reduceByKey (), filter ().
- Transformări statice- Prelucrarea lotului depinde de rezultatele intermediare ale lotului anterior. Exemple -Transformări care depind de ferestre glisante.
35) Explicați cazurile populare de utilizare a Apache Spark
Apache Spark este utilizat în principal pentru
- Învățare automată iterativă.
- Analiză și procesare interactivă a datelor.
- Procesarea fluxurilor
- Procesarea datelor senzoriale
36) Este Apache Spark potrivit pentru învățarea prin întărire?
Nu. Apache Spark funcționează bine doar pentru algoritmi simpli de învățare automată, cum ar fi gruparea, regresia, clasificarea.
37) Ce este Spark Core?
Aceasta are toate funcționalitățile de bază ale Spark, cum ar fi – gestionarea memoriei, recuperarea defecțiunilor, interacțiunea cu sistemele de stocare, programarea sarcinilor etc.
38) Cum puteți elimina elementele cu o cheie prezentă în orice alt RDD?
Utilizați funcția subtractByKey ()
39) Care este diferența dintre persist() și cache()
persist () permite utilizatorului să specifice nivelul de stocare, în timp ce cache () utilizează nivelul de stocare implicit.
40) Care sunt diferitele niveluri de persistență în Apache Spark?
Apache Spark persistă în mod automat datele intermediare din diverse operațiuni de amestecare, totuși, se sugerează adesea ca utilizatorii să apeleze metoda persist () asupra RDD în cazul în care intenționează să o reutilizeze. Spark are diferite niveluri de persistență pentru a stoca RDD-urile pe disc sau în memorie sau ca o combinație a ambelor cu diferite niveluri de replicare.
Diferitele niveluri de stocare/persistență în Spark sunt –
- MEMORY_ONLY
- MEMORY_ONLY_SER
- MEMORY_AND_DISK
- MEMORY_AND_DISK_SER, DISK_ONLY
- OFF_HEAP
41) Cum gestionează Spark monitorizarea și logarea în modul Standalone?
Spark are o interfață de utilizator bazată pe web pentru monitorizarea clusterului în modul standalone, care arată statisticile clusterului și ale lucrărilor. Ieșirea jurnalului pentru fiecare lucrare este scrisă în directorul de lucru al nodurilor slave.
42) Apache Spark oferă puncte de control?
Graficele de linie sunt întotdeauna utile pentru a recupera RDD-urile după o defecțiune, dar acest lucru este, în general, consumator de timp dacă RDD-urile au lanțuri de linie lungi. Spark dispune de o API pentru check pointing, și anume un indicator REPLICATE pentru a persista. Cu toate acestea, decizia cu privire la datele care trebuie verificate – este decisă de utilizator. Punctele de control sunt utile atunci când graficele lineage sunt lungi și au dependențe largi.
43) Cum puteți lansa sarcini Spark în interiorul Hadoop MapReduce?
Utilizând SIMR (Spark in MapReduce), utilizatorii pot rula orice sarcină Spark în interiorul MapReduce fără a avea nevoie de drepturi de administrare.
44) Cum utilizează Spark Akka?
Spark utilizează Akka în principiu pentru programare. Toți lucrătorii solicită o sarcină de masterat după ce se înregistrează. Maestrul doar atribuie sarcina. Aici Spark folosește Akka pentru mesageria dintre lucrători și maeștri.
45) Cum puteți obține o disponibilitate ridicată în Apache Spark?
- Implementarea recuperării unui singur nod cu un sistem de fișiere local
- Utilizarea Maeștrilor StandBy cu Apache ZooKeeper.
46) Hadoop folosește replicarea pentru a obține toleranță la erori. Cum se realizează acest lucru în Apache Spark?
Modelul de stocare a datelor în Apache Spark se bazează pe RDD-uri. RDD-urile ajută la realizarea toleranței la erori prin replicare. RDD are întotdeauna informații despre cum să se construiască din alte seturi de date. Dacă orice partiție a unui RDD este pierdută din cauza unei defecțiuni, lineage ajută la construirea doar a acelei partiții pierdute.
47) Explicați despre componentele de bază ale unei aplicații Spark distribuite.
- Driver -Procesul care execută metoda main () a programului pentru a crea RDD-uri și a efectua transformări și acțiuni asupra acestora.
- Executor -Procesele lucrătoare care execută sarcinile individuale ale unei sarcini Spark.
- Cluster Manager -O componentă conectabilă în Spark, pentru a lansa Executori și Drivere. Managerul de cluster permite Spark să ruleze peste alți manageri externi, cum ar fi Apache Mesos sau YARN.
48) Ce înțelegeți prin evaluare leneșă?
Spark este intelectual în modul în care operează cu datele. Când îi spuneți lui Spark să opereze pe un anumit set de date, acesta ascultă instrucțiunile și își notează, pentru a nu uita – dar nu face nimic, decât dacă i se cere rezultatul final. Atunci când o transformare precum map () este apelată pe un RDD – operațiunea nu este efectuată imediat. Transformările în Spark nu sunt evaluate până când nu se efectuează o acțiune. Acest lucru ajută la optimizarea fluxului general de procesare a datelor.
49) Definiți un nod lucrător.
Un nod care poate rula codul aplicației Spark într-un cluster poate fi numit nod lucrător. Un nod de lucrător poate avea mai mult de un lucrător care este configurat prin setarea proprietății SPARK_ WORKER_INSTANCES în fișierul spark-env.sh. Doar un singur lucrător este pornit dacă proprietatea SPARK_ WORKER_INSTANCES nu este definită.
50) Ce înțelegeți prin SchemaRDD?
Un RDD care constă din obiecte de rânduri (învelitori în jurul unor array-uri de bază de șiruri de caractere sau numere întregi) cu informații de schemă despre tipul de date din fiecare coloană.
51) Care sunt dezavantajele utilizării Apache Spark față de Hadoop MapReduce?
Apache Spark nu se scalează bine pentru sarcini de calcul intensiv și consumă un număr mare de resurse de sistem. Capacitatea in-memory a Apache Spark reprezintă uneori un obstacol major pentru procesarea eficientă din punct de vedere al costurilor a datelor mari. De asemenea, Spark are propriul său sistem de gestionare a fișierelor și, prin urmare, trebuie să fie integrat cu alte platforme de date bazate pe cloud sau cu apache hadoop.
52) Este necesar să se instaleze Spark pe toate nodurile unui cluster YARN în timpul rulării Apache Spark pe YARN ?
Nu , nu este necesar deoarece Apache Spark rulează deasupra YARN.
53) Ce înțelegeți prin memorie executor într-o aplicație Spark?
Care aplicație Spark are aceeași dimensiune fixă a heap-ului și un număr fix de nuclee pentru un executor Spark. Dimensiunea heap-ului este ceea ce se numește memoria executorului Spark, care este controlată cu proprietatea spark.executor.memory din flag-ul -executor-memory. Fiecare aplicație Spark va avea un executor pe fiecare nod de lucru. Memoria executorului este practic o măsură a cantității de memorie a nodului de lucru pe care o va utiliza aplicația.
54) Ce face motorul Spark?
Motorul Spark programează, distribuie și monitorizează aplicația de date în clusterul Spark.
55) Ce face ca Apache Spark să fie bun pentru sarcini de lucru cu latență redusă, cum ar fi procesarea grafurilor și învățarea automată?
Apache Spark stochează datele în memorie pentru construirea și instruirea mai rapidă a modelelor. Algoritmii de învățare automată necesită mai multe iterații pentru a genera un model optim rezultat și, în mod similar, algoritmii de grafuri traversează toate nodurile și marginile. aceste sarcini de lucru cu latență redusă care au nevoie de mai multe iterații pot duce la creșterea performanței. Accesul mai mic la disc și traficul de rețea controlat fac o diferență uriașă atunci când există o mulțime de date care trebuie procesate.
56) Este necesar să porniți Hadoop pentru a rula orice aplicație Apache Spark ?
Nu este manadatory să porniți Hadoop pentru a rula orice aplicație Spark. Deoarece nu există o stocare separată în Apache Spark, acesta utilizează Hadoop HDFS, dar nu este obligatoriu. Datele pot fi stocate în sistemul de fișiere local, pot fi încărcate din sistemul de fișiere local și pot fi procesate.
57) Care este nivelul implicit de paralelism în apache spark?
Dacă utilizatorul nu specifică în mod explicit, atunci numărul de partiții este considerat ca fiind nivelul implicit de paralelism în Apache Spark.
58) Explicați despre fluxul de lucru obișnuit al unui program Spark
- Primul pas într-un program Spark implică crearea de RDD-uri de intrare din date externe.
- Utilizați diverse transformări RDD, cum ar fi filter(), pentru a crea noi RDD-uri transformate pe baza logicii de afaceri.
- persist() orice RDD-uri intermediare care ar putea fi reutilizate în viitor.
- Lansați diverse acțiuni RDD(), cum ar fi first(), count() pentru a începe calculul paralel , care va fi apoi optimizat și executat de Spark.
59) Într-un program Spark dat, cum veți identifica dacă o anumită operație este o transformare sau o acțiune?
Se poate identifica operația pe baza tipului de retur –
i) Operația este o acțiune, dacă tipul de retur este altul decât RDD.
ii) Operația este o transformare, dacă tipul de retur este același cu cel al RDD.
60) Care este, după părerea dumneavoastră, o greșeală frecventă pe care dezvoltatorii apache spark o fac atunci când folosesc spark?
- Menținerea dimensiunii necesare a blocurilor de amestecare.
- Dezvoltatorul Spark face adesea greșeli cu gestionarea grafurilor aciclice direcționate (DAG).)
61) Să presupunem că există un RDD numit ProjectPrordd care conține o listă uriașă de numere. Următorul cod spark este scris pentru a calcula media –
def ProjectProAvg(x, y):
return (x+y)/2.0;
avg = ProjectPrordd.reduce(ProjectProAvg);
Ce este greșit în codul de mai sus și cum îl veți corecta?
Funcția medie nu este nici comutativă, nici asociativă. Cel mai bun mod de a calcula media este de a o însuma mai întâi și apoi de a o împărți la număr, așa cum se arată mai jos –
def sum(x, y):
return x+y;
total =ProjectPrordd.reduce(sum);
avg = total / ProjectPrordd.count();
Cu toate acestea, codul de mai sus ar putea duce la o depășire dacă totalul devine mare. Așadar, cel mai bun mod de a calcula media este să împărțiți fiecare număr la număr și apoi să adunați, așa cum se arată mai jos –
cnt = ProjectPrordd.count();
def divideByCnt(x):
return x/cnt;
myrdd1 = ProjectPrordd.map(divideByCnt);
avg = ProjectPrordd.reduce(sum);
Q. Să spunem că am o listă uriașă de numere într-un fișier în HDFS. Fiecare linie are un număr. și vreau să com
Întrebări de interviu Spark SQL
1) Explicați diferența dintre Spark SQL și Hive.
- Spark SQL este mai rapid decât Hive.
- Orice interogare Hive poate fi executată cu ușurință în Spark SQL, dar viceversa nu este adevărat.
- Spark SQL este o bibliotecă, în timp ce Hive este un cadru.
- Nu este obligatoriu să se creeze un metastore în Spark SQL, dar este obligatoriu să se creeze un metastore Hive.
- Spark SQL deduce automat schema, în timp ce în Hive schema trebuie să fie declarată explicit…
Întrebări de interviu Spark Streaming
1) Numiți câteva surse din care componenta Spark streaming poate procesa date în timp real.
Apache Flume, Apache Kafka, Amazon Kinesis
2) Numiți câteva companii care folosesc deja Spark Streaming.
Uber, Netflix, Pinterest.
3) Care este stratul inferior de abstractizare în API-ul Spark Streaming ?
DStream.
4) Ce înțelegeți prin receptori în Spark Streaming?
Receptorii sunt entități speciale în Spark Streaming care consumă date din diverse surse de date și le transferă către Apache Spark. Receptorii sunt de obicei creați de contextele de streaming ca sarcini de lungă durată pe diverși executori și sunt programați să funcționeze într-o manieră round robin, fiecare receptor ocupând un singur nucleu.
Invităm comunitatea big data să împărtășească cele mai frecvente întrebări și răspunsuri de interviu Apache Spark, în comentariile de mai jos – pentru a ușura interviurile de angajare în domeniul big data pentru toți viitorii profesioniști din domeniul analizei.
5) Cum veți calcula numărul de executori necesar pentru a face procesarea în timp real folosind Apache Spark? Ce factori trebuie luați în considerare pentru a decide asupra numărului de noduri pentru procesarea în timp real?
Numărul de noduri poate fi decis prin evaluarea comparativă a hardware-ului și luarea în considerare a mai multor factori, cum ar fi debitul optim (viteza rețelei), utilizarea memoriei, cadrele de execuție utilizate (YARN, Standalone sau Mesos) și luarea în considerare a celorlalte lucrări care rulează în cadrul acestor cadre de execuție împreună cu Spark.
6) Care este diferența dintre Spark Transform în DStream și map ?
Funcția de transformare în Spark Streaming permite dezvoltatorilor să utilizeze transformările Apache Spark pe RDD-urile subiacente pentru flux. funcția map în hadoop este utilizată pentru o transformare de la element la element și poate fi implementată utilizând transform. în mod ideal , map lucrează pe elementele din Dstream și transform permite dezvoltatorilor să lucreze cu RDD-urile din DStream. map este o transformare elementară, în timp ce transform este o transformare RDD.
Consultați cele mai bune întrebări de interviu Scala pentru dezvoltatorii Spark.
.