Viimeisin päivitetty: 25.1.2021
Big data -kehittäjän tai apache spark -kehittäjän työhaastattelussa esitetyt kysymykset voivat jakautua Spark-ekosysteemin komponenttien perusteella johonkin seuraavista luokista –
Lisäksi, projektikokemuksen näyttäminen seuraavista projekteista on avainasemassa –
|
Toimialan kasvavaan kysyntään nähden, käsitellä suurta dataa nopeammalla tahdilla -Apache Spark on saamassa valtavan vauhdin, kun on kyse yritysten käyttöönotosta. Hadoop MapReduce tuki hyvin tarvetta käsitellä isoa dataa nopeasti, mutta kehittäjien keskuudessa oli aina tarve oppia joustavampia työkaluja, jotta he pysyisivät keskisuurten big data -joukkojen ylivoimaisten markkinoiden perässä, reaaliaikaiseen tietojenkäsittelyyn sekunneissa.
Tukeakseen vauhtia nopeampaan big data -käsittelyyn on kasvava kysyntä Apache Spark -kehittäjille, jotka pystyvät validoimaan asiantuntemuksensa parhaiden käytänteiden käyttöönotossa Sparkia varten – rakentaakseen monitahoisia big data -ratkaisuja. Yhteistyössä ja big data-alan asiantuntijoiden kanssa olemme kuratoineet luettelon 50:stä parhaasta Apache Spark -haastattelukysymyksestä ja -vastauksesta, jotka auttavat opiskelijoita/ammattilaisia naulitsemaan big data -kehittäjän haastattelun ja kuromaan umpeen Spark-kehittäjien lahjakkuuksien tarjonnan eri toimialoilla.
Click here to view a list of 50+ solved, end-to-end Big Data and Machine Learning Project Solutions (reusable code + videos)
Companies like Amazon, Shopify, Alibaba and eBay are adopting Apache Spark for their big data deployments- the demand for Spark developers is expected to grow exponentially. Google Trends vahvistaa ”hockey-stick-like-growth” Spark-yritysten hyväksynnässä ja tietoisuudessa eri toimialojen organisaatioiden keskuudessa. Sparkista on tulossa suosittu, koska se pystyy käsittelemään tapahtumien suoratoistoa ja käsittelemään suurta dataa nopeammin kuin Hadoop MapReduce. Vuosi 2017 on paras aika hioa Apache Spark -taitojasi ja tavoitella hedelmällistä uraa data-analytiikan ammattilaisena, datatieteilijänä tai big datan kehittäjänä.
Nämä Apache Spark -projektit auttavat sinua kehittämään taitojasi, jotka tekevät sinusta kelvollisen hakemaan Spark-kehittäjän työtehtäviä.
Top 50 Apache Spark -haastattelukysymystä ja vastausta
Valmistautuminen on erittäin tärkeää, jotta voit vähentää hermostuneisuutta missä tahansa big data -työnhaastattelussa. Riippumatta siitä, millaista big data -osaamista ja -taitoja henkilöllä on, jokainen hakija pelkää big data -työnhaastattelua kasvotusten. Vaikka ei ole mitään keinoa ennustaa tarkalleen, mitä kysymyksiä big datan tai spark-kehittäjän työhaastattelussa kysytään, nämä Apache spark -haastattelukysymykset ja -vastaukset saattavat auttaa sinua valmistautumaan näihin haastatteluihin paremmin.
1) Vertaile Spark vs. Hadoop MapReduce
Kriteerit |
Hadoop MapReduce |
Apache Spark |
Muisti |
Ei hyödynnä hadoop-klusterin muistia maksimaalisesti. | Säästää dataa muistiin RDD:iden avulla. |
Kiekon käyttö |
MapReduce on levykeskeinen. | Spark tallentaa datan välimuistiin ja takaa alhaisen latenssin. |
Käsittely |
Tukee vain eräkäsittelyä | Tukee reaaliaikaista käsittelyä spark streamingin avulla. |
Asennus |
On sidottu Hadoopiin. | Ei ole sidottu Hadoopiin. |
Sparkin yksinkertaisuus, joustavuus ja suorituskyky ovat Sparkin suurimmat hyödyt Hadoopiin verrattuna.
- Spark on 100 kertaa nopeampi kuin Hadoop big datan käsittelyssä, koska se tallentaa tiedot muistiin sijoittamalla ne Resilient Distributed Databases (RDD) -tietokantoihin.
- Spark on helpompi ohjelmoida, koska siinä on interaktiivinen tila.
- Se tarjoaa täydellisen palautuksen lineage-graafin avulla aina, kun jokin menee pieleen.
Vertaile Spark vs. Hadoop
Klikkaa tästä nähdäksesi 52+ ratkaistua, uudelleenkäytettävää projektiratkaisua Big Data – Spark -hankkeessa
2) Mikä on Shark?
Vähemmistö datan hyödyntäjistä tuntee pelkkää SQL:ää, eivätkä he ole hyviä ohjelmoimaan. Shark on työkalu, joka on kehitetty henkilöille, jotka ovat tietokantataustaisia – käyttää Scala MLib -ominaisuuksia Hiven kaltaisen SQL-rajapinnan kautta. Shark-työkalu auttaa datan käyttäjiä käyttämään Hivea Sparkissa – se tarjoaa yhteensopivuuden Hiven metavaraston, kyselyiden ja datan kanssa.
3) Luettele joitakin käyttötapauksia, joissa Spark päihittää Hadoopin tietojenkäsittelyssä.
- Sensoridatan prosessointi -Apache Sparkin ’In-memory computing’ toimii tässä parhaiten, koska dataa haetaan ja yhdistellään eri lähteistä.
- Sparkia suositaan Hadoopin sijaan tietojen reaaliaikaiseen kyselyyn
- Stream Processing – Lokien käsittelyyn ja huijausten havaitsemiseen suorissa lähetyksissä hälytyksiä varten Apache Spark on paras ratkaisu.
4) Mikä on harvahko vektori?
Harvahkossa vektorissa on kaksi rinnakkaista matriisia – toinen indeksejä ja toinen arvoja varten. Näitä vektoreita käytetään nollasta poikkeavien merkintöjen tallentamiseen tilan säästämiseksi.
5) Mikä on RDD?
RDD:t (Resilient Distributed Datasets) ovat Apache Sparkin perusabstraktio, joka edustaa järjestelmään tulevaa dataa objektimuodossa. RDD:tä käytetään suurissa klustereissa tapahtuviin muistissa tapahtuviin laskutoimituksiin vikasietoisesti. RDD:t ovat lukukäyttöön ositettuja, tietueiden kokoelmia, jotka ovat –
- Immutable – RDD:itä ei voi muuttaa.
- Resilientti – Jos osiota hallussaan pitävä solmu vikaantuu, toinen solmu ottaa tiedot.
Rakenna Big Data -projektisalkku työskentelemällä reaaliaikaisten apache spark -projektien parissa
6) Selitä transformaatioista ja toiminnoista RDD:iden yhteydessä.
Transformaatiot ovat funktioita, jotka suoritetaan pyydettäessä ja joiden avulla tuotetaan uusi RDD. Kaikkia transformaatioita seuraavat toiminnot. Esimerkkejä muunnoksista ovat map, filter ja reduceByKey.
Actions ovat RDD-laskentojen tai muunnosten tuloksia. Kun toiminto on suoritettu, RDD:n tiedot siirtyvät takaisin paikalliseen koneeseen. Esimerkkejä toiminnoista ovat reduce, collect, first ja take.
7) Mitä kieliä Apache Spark tukee big data -sovellusten kehittämiseen?
Scala, Java, Python, R ja Clojure
8) Voiko Sparkilla käyttää Cassandra-tietokantoihin tallennettua dataa ja analysoida sitä?
Kyllä, se on mahdollista, jos käytät Spark Cassandra Connector -liittymää.
9) Voiko Apache Sparkia käyttää Apache Mesosissa?
Kyllä, Apache Sparkia voi ajaa Mesosin hallinnoimissa laitteistoklustereissa.
10) Selitä Apache Sparkin eri klusterinhallinnoista
Apache Sparkissa tuetut kolme eri klusterinhallintaa ovat:
- YARN
- Apache Mesos -On rikas resurssien ajoitusominaisuuksiltaan ja sopii hyvin Sparkin ajamiseen muiden sovellusten ohella. Se on edullinen, kun useat käyttäjät suorittavat interaktiivisia kuoria, koska se skaalaa suorittimen jakoa komentojen välillä.
- Standalone-käyttöönotot – Soveltuu hyvin uusiin käyttöönottoihin, jotka vain toimivat ja jotka on helppo ottaa käyttöön.
11) Miten Spark voidaan liittää Apache Mesosiin?
Sparkin liittäminen Mesosiin-
- Konfiguroi spark-ajuriohjelma niin, että se voi muodostaa yhteyden Mesosiin. Spark-binääripaketin tulee olla paikassa, johon Mesos pääsee käsiksi. (tai)
- Asenna Apache Spark samaan paikkaan kuin Apache Mesos ja määritä ominaisuus ’spark.mesos.executor.home’ osoittamaan paikkaan, johon se on asennettu.
12) Miten voit minimoida tiedonsiirrot työskennellessäsi Sparkin kanssa?
Tiedonsiirtojen minimointi ja sekoittamisen välttäminen auttaa kirjoittamaan Spark-ohjelmia, jotka toimivat nopeasti ja luotettavasti. Eri tapoja, joilla tiedonsiirtoja voidaan minimoida Apache Sparkin kanssa työskenneltäessä, ovat:
- Broadcast-muuttujan käyttäminen- Broadcast-muuttuja parantaa pienten ja suurten RDD:iden välisten yhdistämisten tehokkuutta.
- Kumulaattoreiden käyttäminen – Kumulaattorit auttavat päivittämään muuttujien arvoja rinnakkain suorituksen aikana.
- Yleisin tapa on välttää operaatioita ByKey, repartition tai muita operaatioita, jotka laukaisevat sekoituksia.
13) Miksi tarvitaan broadcast-muuttujia Apache Sparkin kanssa työskenneltäessä?
Nämä ovat read only -muuttujia, jotka ovat läsnä jokaisen koneen muistivälimuistissa. Sparkin kanssa työskenneltäessä broadcast-muuttujien käyttö poistaa tarpeen lähettää muuttujan kopioita jokaiseen tehtävään, joten dataa voidaan käsitellä nopeammin. Broadcast-muuttujat auttavat tallentamaan hakutaulukon muistin sisälle, mikä parantaa hakutehokkuutta verrattuna RDD-hakuun ().
14) Onko mahdollista käyttää Sparkia ja Mesosia yhdessä Hadoopin kanssa?
Kyllä, Sparkia ja Mesosia on mahdollista käyttää Hadoopin kanssa käynnistämällä kumpikin näistä erillisenä palveluna koneilla. Mesos toimii yhtenäisenä aikatauluttajana, joka määrittää tehtävät joko Sparkille tai Hadoopille.
15) Mikä on lineage graph?
Sparkin RDD:t, riippuvat yhdestä tai useammasta muusta RDD:stä. RDD:iden välisten riippuvuuksien esitys tunnetaan nimellä lineage graph. Lineage graph -tietoa käytetään kunkin RDD:n laskemiseen pyynnöstä, jotta aina kun osa pysyvistä RDD:istä katoaa, kadonnut tieto voidaan palauttaa lineage graph -tiedon avulla.
16) Miten voit käynnistää automaattiset siivoukset Sparkissa kertyneen metatiedon käsittelemiseksi?
Voit käynnistää siivoukset asettamalla parametrin ’spark.cleaner.ttl’ tai jakamalla pitkään käynnissä olevat työt eri eriin ja kirjoittamalla välitulokset levylle.
17) Selitä Spark-ekosysteemin muodostavat tärkeimmät kirjastot
- Spark MLib- Sparkin koneoppimiskirjasto yleisesti käytettyjä oppimisalgoritmeja varten, kuten klusterointi, regressio, luokittelu jne.
- Spark Streaming – Tätä kirjastoa käytetään reaaliaikaisen streaming-datan käsittelyyn.
- Spark GraphX – Spark API graafien rinnakkaislaskentaan perusoperaattoreilla, kuten joinVertices, subgraph, aggregateMessages jne.
- Spark SQL – Auttaa suorittamaan SQL:n kaltaisia kyselyitä Spark-tietoihin tavallisilla visualisointi- tai BI-työkaluilla.
18) Mitä hyötyä Sparkin käyttämisestä Apache Mesosin kanssa on?
Sen avulla saadaan aikaan skaalautuva partitiointi eri Spark-instanssien välillä ja dynaaminen partitiointi Sparkin ja muiden big data -kehysten välillä.
19) Mitä merkitystä on Sliding Window -operaatiolla?
Sliding Window ohjaa datapakettien siirtoa eri tietoverkkojen välillä. Spark Streaming -kirjasto tarjoaa ikkunoituja laskutoimituksia, joissa RDD-tietueiden muunnoksia sovelletaan liukuvan dataikkunan yli. Aina kun ikkuna liukuu, tiettyyn ikkunaan kuuluvat RDD:t yhdistetään ja niitä operoidaan tuottamaan uusia ikkunoidun DStreamin RDD:itä.
20) Mikä on DStream?
Diskretisoitu Stream on sarja Resilienttejä hajautettuja tietokantoja, jotka edustavat tietovirtaa. DStreameja voidaan luoda eri lähteistä, kuten Apache Kafka, HDFS ja Apache Flume. DStreameilla on kaksi operaatiota –
- Transformaatiot, jotka tuottavat uuden DStreamin.
- Output-operaatiot, jotka kirjoittavat dataa ulkoiseen järjestelmään.
21) Kun Spark-sovelluksia ajetaan, onko Spark asennettava kaikkiin YARN-klusterin solmuihin?
Sparkia ei tarvitse asentaa, kun työtä ajetaan YARN- tai Mesos-järjestelmässä, koska Sparkia voidaan suorittaa YARN- tai Mesos-klustereiden päällä ilman, että se vaikuttaa klusterin muutoksiin.
22) Mikä on Catalyst-kehys?
Catalyst-kehys on uusi optimointikehys, joka on läsnä Spark SQL:ssä. Sen avulla Spark voi automaattisesti muuntaa SQL-kyselyjä lisäämällä uusia optimointeja nopeamman käsittelyjärjestelmän rakentamiseksi.
23) Nimeä muutama yritys, jotka käyttävät Apache Sparkia tuotannossa.
Pinterest, Conviva, Shopify, Open Table
24) Mikä Spark-kirjasto mahdollistaa luotettavan tiedostojen jakamisen muistinopeudella eri klusterikehysten välillä?
Tachyon
Työskentele mielenkiintoisten datatieteen projektien parissa Sparkin avulla ja rakenna vaikuttava projektisalkku!
25) Miksi käytetään BlinkDB:tä?
BlinkDB on kyselymoottori, jolla voidaan suorittaa interaktiivisia SQL-kyselyjä valtaville tietomäärille, ja se renderöi kyselytulokset merkittyinä mielekkäillä virhetuloksilla. BlinkDB auttaa käyttäjiä tasapainottamaan ”kyselytarkkuuden” ja vasteajan välillä.
26) Miten voit verrata Hadoopia ja Sparkia helppokäyttöisyyden suhteen?
Hadoop MapReduce vaatii ohjelmointia Javalla, mikä on hankalaa, vaikka Pig ja Hive helpottavat sitä huomattavasti. Pigin ja Hiven syntaksin oppiminen vie aikaa. Sparkilla on interaktiiviset API:t eri kielille, kuten Java, Python tai Scala, ja se sisältää myös Sharkin eli Spark SQL:n SQL:n ystäville – mikä tekee siitä verrattain helpomman käyttää kuin Hadoopista.
27) Mitä yleisiä virheitä kehittäjät tekevät Spark-sovelluksia ajaessaan?
Kehittäjät tekevät usein seuraavan virheen-
- Verkkopalvelun käyttäminen useaan kertaan käyttämällä useita klustereita.
- Kaiken ajaminen paikallisessa solmussa sen sijaan, että se olisi hajautettu.
Kehittäjien on oltava varovaisia tämän kanssa, koska Spark käyttää muistia käsittelyyn.
28) Mikä on Parquet-tiedoston etu?
Parquet-tiedosto on sarakemuotoinen tiedosto, joka auttaa –
- Limitoimaan I/O-operaatioita
- Varaa vähemmän tilaa
- Noutaa vain tarvittavat sarakkeet.
29) Mitä eri tietolähteitä SparkSQL:ssä on käytettävissä?
- Parquet-tiedosto
- JSON-tietoaineistot
- Hive-taulukot
30) Miten Spark käyttää Hadoopia?
Sparkilla on oma klusterinhallintalaskenta ja se käyttää Hadoopia pääasiassa tallennukseen.
Täydellinen luettelo ratkaistuista Big Data -projekteista – KLIKKAA TÄSTÄ
31) Mitkä ovat Apache Sparkin tärkeimmät ominaisuudet, joista pidät?
- Spark tarjoaa kehittyneitä analyysivaihtoehtoja, kuten graafialgoritmeja, koneoppimista, suoratoistodataa jne
- Sillä on sisäänrakennetut API:t useilla kielillä, kuten Java, Scala, Python ja R
- Sillä on hyviä suorituskykyhyötyjä, sillä sen avulla sovellusta voidaan ajaa Hadoop-klusterissa kymmenkertaisesti nopeammin levykkeellä ja satakertaisesti muistissa.
32) Mitä ymmärrät käsitteellä Pair RDD?
Sparkissa RDD:ille voidaan suorittaa erityisiä operaatioita avain-/arvoparien avulla ja tällaisia RDD:itä kutsutaan Pair RDD:iksi. Pair RDD:iden avulla käyttäjät voivat käyttää jokaista avainta rinnakkain. Niillä on reduceByKey ()-metodi, joka kerää tiedot kunkin avaimen perusteella, ja join ()-metodi, joka yhdistää eri RDD:t yhteen niiden elementtien perusteella, joilla on sama avain.
33) Kumman valitset projektiin -Hadoop MapReducen vai Apache Sparkin?
Vastaus tähän kysymykseen riippuu annetusta projektin skenaariosta – kuten tiedetään, Spark käyttää muistia verkon ja levyn I/O:n sijaan. Spark käyttää kuitenkin suuren määrän RAM-muistia ja vaatii dedikoidun koneen tuottamaan tehokkaita tuloksia. Päätös Hadoopin tai Sparkin käytöstä vaihtelee siis dynaamisesti projektin vaatimusten ja organisaation budjetin mukaan.
34) Selitä erityyppiset muunnokset DStreamissa?
- Stateless Transformations- Erän käsittely ei riipu edellisen erän tuotoksesta. Esimerkkejä – map (), reduceByKey (), filter ().
- Stateful Transformations- Erän käsittely riippuu edellisen erän välituloksista. Esimerkkejä -Transformaatiot, jotka riippuvat liukuvista ikkunoista.
35) Selitä Apache Sparkin suositut käyttötapaukset
Apache Sparkia käytetään pääasiassa
- Iteratiiviseen koneoppimiseen.
- Interaktiiviseen data-analytiikkaan ja -käsittelyyn.
- Stream-prosessointiin
- Sensoridatan käsittelyyn
36) Soveltuuko Apache Spark hyvin vahvistusoppimiseen?
Ei. Apache Spark sopii hyvin vain yksinkertaisiin koneoppimisalgoritmeihin, kuten klusterointiin, regressioon ja luokitteluun.
37) Mikä on Spark Core?
Siinä on kaikki Sparkin perustoiminnallisuudet, kuten – muistinhallinta, vikasietoisuus, vuorovaikutus tallennusjärjestelmien kanssa, tehtävien ajoittaminen jne.
38) Miten voit poistaa elementit, joiden avain on läsnä jossakin toisessa RDD:ssä?
Käytä subtractByKey ()-funktiota
39) Mitä eroa on persist()- ja cache()-funktioilla?
persist ()-funktiolla käyttäjä voi määrittää tallennustason, kun taas cache ()-funktio käyttää oletustasoa.
40) Mitä eri pysyvyystasoja Apache Sparkissa on?
Apache Spark pysyvöittää automaattisesti eri shuffle-operaatioiden välitystiedot, mutta usein ehdotetaan kuitenkin, että käyttäjät kutsuvat persist ()-metodia RDD:lle, jos he aikovat käyttää sitä uudelleen. Sparkissa on erilaisia pysyvyystasoja, joilla RDD:t voidaan tallentaa levylle tai muistiin tai molempien yhdistelmänä eri replikointitasoilla.
Sparkin eri tallennus-/persistenssitasot ovat –
- MEMORY_ONLY
- MEMORY_ONLY_SER
- MEMORY_AND_DISK
- MEMORY_AND_DISK_SER, DISK_ONLY
- OFF_HEAP
41) Miten Spark käsittelee seurantaa ja lokitusta Standalone-tilassa?
Sparkilla on web-pohjainen käyttöliittymä klusterin seurantaan standalone-tilassa, joka näyttää klusteri- ja työtilastot. Kunkin työn lokitulosteet kirjoitetaan orjasolmujen työhakemistoon.
42) Tarjoaako Apache Spark tarkistuspisteytyksen?
Linjakuvaajat ovat aina hyödyllisiä, kun RDD-tietokantoja halutaan palauttaa vikaantumisen jälkeen, mutta tämä on yleensä aikaa vievää, jos RDD-tietokannoilla on pitkät linjaketjut. Sparkissa on API check pointingille eli REPLICATE-lippu persistille. Päätöksen siitä, mitkä tiedot tarkistuspisteytetään, tekee kuitenkin käyttäjä. Tarkistuspisteet ovat hyödyllisiä, kun lineage-ketjut ovat pitkiä ja niissä on laajoja riippuvuuksia.
43) Miten Spark-työt voidaan käynnistää Hadoop MapReducen sisällä?
Käyttämällä SIMR:ää (Spark in MapReduce) käyttäjät voivat suorittaa minkä tahansa Spark-työn MapReducen sisällä tarvitsematta ylläpitäjäoikeuksia.
44) Miten Spark käyttää Akka:a?
Spark käyttää Akka:a pohjimmiltaan aikataulutukseen. Kaikki työläiset pyytävät tehtävää masterille rekisteröitymisen jälkeen. Master vain antaa tehtävän. Tässä Spark käyttää Akkaa viestinvälitykseen työläisten ja masterien välillä.
45) Miten saavutetaan korkea käytettävyys Apache Sparkissa?
- Toteutetaan yhden solmun palautus paikallisella tiedostojärjestelmällä
- Käytetään StandBy Mastersia Apache ZooKeeperillä.
46) Hadoop käyttää replikointia vikasietoisuuden saavuttamiseksi. Miten tämä saavutetaan Apache Sparkissa?
Datan tallennusmalli Apache Sparkissa perustuu RDD:iin. RDD:t auttavat saavuttamaan vikasietoisuutta linjaston avulla. RDD:ssä on aina tieto siitä, miten se rakentuu muista tietokokonaisuuksista. Jos jokin RDD:n osio menetetään vian vuoksi, lineage auttaa rakentamaan vain kyseisen menetetyn osion.
47) Selitä hajautetun Spark-sovelluksen ydinkomponentit.
- Ajuri – Prosessi, joka ajaa ohjelman main ()-metodia luodakseen RDD:itä ja suorittaakseen niille muunnoksia ja toimintoja.
- Toteuttaja – Työntekijäprosessit, jotka suorittavat Spark-työn yksittäisiä tehtäviä.
- Klusterihallinnoija-Pistokelpoinen komponentti Spark-ohjelmassa, jonka avulla voidaan käynnistää toteuttajat ja ajurit. Klusterinhallinta mahdollistaa Sparkin suorittamisen muiden ulkoisten hallitsijoiden, kuten Apache Mesosin tai YARN:n, päällä.
48) Mitä ymmärrät laiskalla arvioinnilla?
Spark on älyllinen tavassa, jolla se operoi dataa. Kun käsket Sparkia operoimaan tietyllä datajoukolla, se ottaa ohjeet huomioon ja tekee siitä muistiinpanon, jotta se ei unohda – mutta se ei tee mitään, ellei siltä kysytä lopputulosta. Kun muunnosta, kuten map (), kutsutaan RDD:lle – operaatiota ei suoriteta välittömästi. Sparkissa muunnoksia ei arvioida ennen kuin suoritat toiminnon. Tämä auttaa optimoimaan koko tietojenkäsittelyn työnkulun.
49) Työsolmun määrittäminen.
Työsolmuksi voidaan kutsua solmua, joka voi suorittaa Spark-sovelluskoodia klusterissa. Työntekijäsolmulla voi olla useampi kuin yksi työntekijä, joka määritetään asettamalla SPARK_ WORKER_INSTANCES-ominaisuus spark-env.sh-tiedostossa. Vain yksi työläinen käynnistetään, jos SPARK_ WORKER_INSTANCES-ominaisuutta ei ole määritetty.
50) Mitä ymmärrät SchemaRDD:llä?
RDD, joka koostuu riviobjekteista (perusmerkkijono- tai kokonaislukumassojen ympärille tehdyt kääreet), joissa on skeematietoa kunkin sarakkeen tietotyypistä.
51) Mitä haittoja on Apache Sparkin käytössä Hadoop MapReduceen verrattuna?
Apache Spark ei skaalaudu hyvin laskentaintensiivisiin tehtäviin ja kuluttaa paljon järjestelmäresursseja. Apache Sparkin in-memory-ominaisuus tulee ajoittain suureksi esteeksi suurten tietojen kustannustehokkaalle käsittelylle. Lisäksi Sparkilla on oma tiedostonhallintajärjestelmänsä, joten se on integroitava muihin pilvipohjaisiin data-alustoihin tai apache hadoopiin.
52) Onko Spark asennettava kaikkiin YARN-klusterin solmuihin, kun Apache Spark on YARN ?
Ei , se ei ole välttämätöntä, koska Apache Spark toimii YARN:n päällä.
53) Mitä ymmärrät Executor-muistilla Spark-sovelluksessa?
Jokaiseen spark-sovellukseen on sama kiinteä heap-koko ja kiinteä määrä ytimiä spark executorille. Heapin kokoa kutsutaan Spark executor -muistiksi, jota hallitaan spark.executor.memory -ominaisuudella -executor-memory -lippulauseella. Jokaisella spark-sovelluksella on yksi suoritin jokaisessa työläissolmussa. Executor-muisti on periaatteessa mittari sille, kuinka paljon työläissolmun muistia sovellus käyttää.
54) Mitä Spark-moottori tekee?
Spark-moottori aikatauluttaa, jakaa ja valvoo datasovellusta Spark-klusterissa.
55) Mikä tekee Apache Sparkista hyvän matalan viiveen työkuormituksissa, kuten graafien prosessoinnissa ja koneoppimisessa?
Apache Spark varastoi datan muistiin nopeuttaakseen mallinrakentamista ja -koulutusta. Koneoppimisalgoritmit vaativat useita iteraatioita tuottaakseen tuloksena olevan optimaalisen mallin, ja vastaavasti graafialgoritmit läpikäyvät kaikki solmut ja särmät.Nämä matalan viiveen työtehtävät, jotka vaativat useita iteraatioita, voivat lisätä suorituskykyä. Vähemmän levykäyttöä ja hallittu verkkoliikenne tekevät valtavan eron, kun käsiteltävää dataa on paljon.
56) Onko Hadoopin käynnistäminen välttämätöntä minkä tahansa Apache Spark -sovelluksen suorittamiseksi?
Hadoopin käynnistäminen ei ole välttämätöntä minkä tahansa Spark-sovelluksen suorittamiseksi. Koska Apache Sparkissa ei ole erillistä tallennustilaa, se käyttää Hadoop HDFS:ää, mutta se ei ole pakollista. Tiedot voidaan tallentaa paikalliseen tiedostojärjestelmään, ne voidaan ladata paikallisesta tiedostojärjestelmästä ja käsitellä.
57) Mikä on apache sparkin oletusarvoinen rinnakkaistustaso?
Jos käyttäjä ei nimenomaisesti määrittele, osioiden määrää pidetään Apache Sparkin oletusarvoiseksi rinnakkaistasoksi.
58) Selitä Spark-ohjelman yleinen työnkulku
- Sparkin ohjelman ensimmäinen vaihe sisältää syötteen RDD:n luomisen ulkoisesta datasta.
- Käytä erilaisia RDD-muunnoksia, kuten filter(), luodaksesi uusia muunnettuja RDD:itä liiketoimintalogiikan perusteella.
- Persist() kaikki väli RDD:t, joita saatetaan joutua käyttämään uudelleen tulevaisuudessa.
- Käynnistä erilaiset RDD-toiminnot(), kuten first(), count(), aloittaaksesi rinnakkaisen laskennan , jonka Spark sitten optimoi ja suorittaa.
59) Miten tunnistat tietyssä Spark-ohjelmassa, onko tietty operaatio Transformation vai Action?
Voidaan tunnistaa operaatio paluutyypin perusteella –
i) Operaatio on action, jos paluutyyppi on muu kuin RDD.
ii) Operaatio on transformation, jos paluutyyppi on sama kuin RDD.
60) Mikä on mielestäsi yleinen virhe, jonka apache spark -kehittäjät tekevät sparkia käyttäessään?
- Shuffle-lohkojen vaaditun koon pitäminen.
- Spark-kehittäjät tekevät usein virheitä suunnattujen asyklisten graafien (DAG:t) hallinnassa.
61) Oletetaan, että on olemassa RDD nimeltä ProjektiPrordd, joka sisältää valtavan määrän numeroita. Kirjoitetaan seuraava kipinäkoodi keskiarvon laskemiseksi –
def ProjectProAvg(x, y):
return (x+y)/2.0;
avg = ProjectPrordd.reduce(ProjectProAvg);
Mitä ylläolevassa koodissa on vikana ja miten korjaat sen?
Keskiarvofunktio ei ole kommutatiivinen eikä assosiatiivinen. Paras tapa laskea keskiarvo on laskea se ensin yhteen ja jakaa se sitten lukumäärällä alla esitetyllä tavalla –
def sum(x, y):
return x+y;
total =ProjectPrordd.reduce(sum);
avg = total / ProjectPrordd.count();
Ylläoleva koodi voi kuitenkin johtaa ylivuotoon, jos kokonaissummasta tulee suuri. Niinpä paras tapa laskea keskiarvo on jakaa jokainen luku lukumäärällä ja laskea sitten yhteen alla esitetyllä tavalla –
cnt = ProjectPrordd.count();
def divideByCnt(x):
return x/cnt;
myrdd1 = ProjectPrordd.map(divideByCnt);
avg = ProjectPrordd.reduce(sum);
Q. Sanotaan, että minulla on valtava luettelo numeroita HDFS:ssä olevassa tiedostossa. Jokaisella rivillä on yksi numero. ja haluan com
Spark SQL haastattelukysymykset
1) Selitä Spark SQL:n ja Hiven ero.
- Spark SQL on nopeampi kuin Hive.
- Kaikkia Hive-kyselyjä voi helposti suorittaa Spark SQL:ssä, mutta päinvastoin ei ole totta.
- Spark SQL on kirjasto, kun taas Hive on kehys.
- Metatietovaraston luominen ei ole pakollista Spark SQL:ssä, mutta Hiven metatietovaraston luominen on pakollista.
- Spark SQL päättelee skeeman automaattisesti, kun taas Hivessä skeema täytyy ilmoittaa eksplisiittisesti…
Spark Streaming -haastattelukysymykset
1) Nimeä joitakin lähteitä, joista Spark streaming -komponentti voi käsitellä reaaliaikaista dataa.
Apache Flume, Apache Kafka, Amazon Kinesis
2) Nimeä joitain yrityksiä, jotka jo käyttävät Spark Streamingia.
Uber, Netflix, Pinterest.
3) Mikä on Spark Streaming API:n alin abstraktiokerros?
DStream.
4) Mitä ymmärrät Spark Streamingin vastaanottajilla?
Vastaanottimet ovat Spark Streamingin erityisiä kokonaisuuksia, jotka kuluttavat dataa eri tietolähteistä ja siirtävät sen Apache Sparkiin. Vastaanottimet luodaan yleensä suoratoistokonteksteissa pitkäaikaisina tehtävinä eri toteuttajiin ja ajoitetaan toimimaan round robin -periaatteella siten, että kukin vastaanotin vie yhden ytimen.
Kutsumme big data -yhteisön jakamaan alla olevissa kommenteissa useimmin kysytyt Apache Spark -haastattelukysymykset ja -vastaukset – helpottaaksemme big data -työskentelyhaastattelujen tekemistä kaikille potentiaalisille analyysiammattilaisille.
5) Miten lasket toteuttajien lukumäärän, jota tarvitaan reaaliaikaisen prosessoinnin tekemiseen Apache Sparkin avulla? Mitä tekijöitä on otettava huomioon päätettäessä solmujen määrästä reaaliaikaista käsittelyä varten?
Solmujen määrästä voidaan päättää vertailemalla laitteistoa ja ottamalla huomioon useita tekijöitä, kuten optimaalinen läpäisykyky (verkon nopeus), muistin käyttö, käytettävät suoritusympäristöt (YARN, Standalone tai Mesos) ja ottamalla huomioon muut työtehtävät, joita suoritetaan näissä suoritusympäristöissä Sparkin ohella.
6) Mitä eroa on Spark Transformin välillä, kun kyseessä on DStream ja map ?
tranform-funktio spark streamingissä antaa kehittäjille mahdollisuuden käyttää Apache Sparkin muunnoksia taustalla oleviin RDD:iin streamille. map-funktiota hadoopissa käytetään elementti-elementti-muunnokseen, ja se voidaan toteuttaa transformin avulla. ihannetapauksessa map toimii Dstreamin elementeillä ja transform antaa kehittäjille mahdollisuuden työskennellä DStreamin RDD:n kanssa. map on elementtimuunnos, kun taas transform on RDD-muunnos.
Katso parhaat Scala-haastattelukysymykset Spark-kehittäjille.