Poslední aktualizace: Otázky a odpovědi na pohovorech na téma Spark 2017
Otázky kladené na pohovoru pro vývojáře velkých dat nebo vývojáře Apache Spark mohou spadat do jedné z následujících kategorií na základě komponent ekosystému Spark.
- Otázky k základnímu pohovoru na Spark
- Otázky k pohovoru na Spark SQL
- Otázky k pohovoru na Spark MLlib
- Otázky k pohovoru na Spark Streaming
Dále, klíčové je zobrazení zkušeností s následujícími projekty –
- Spark Streaming projekty
- Spark MLib projekty
- Apache Spark projekty
- PySpark projekty
S rostoucí poptávkou ze strany průmyslu, na zpracování velkých objemů dat rychlejším tempem -Apache Spark získává obrovskou dynamiku, pokud jde o zavádění v podnicích. Hadoop MapReduce dobře podporoval potřebu rychlého zpracování velkých dat, ale mezi vývojáři vždy existovala potřeba naučit se flexibilnější nástroje, aby udrželi krok s vynikajícím trhem středně velkých souborů velkých dat, pro zpracování dat v reálném čase během několika sekund.
Pro podporu rozmachu rychlejšího zpracování velkých dat roste poptávka po vývojářích Apache Spark, kteří mohou ověřit své odborné znalosti při implementaci osvědčených postupů pro Spark – pro budování komplexních řešení velkých dat. Ve spolupráci s a odborníky z oboru velkých dat -jsme sestavili seznam 50 nejlepších otázek a odpovědí na pohovory pro Apache Spark, které pomohou studentům/profesionálům přibít se na pohovor pro vývojáře velkých dat a překlenout nabídku talentů pro vývojáře Spark v různých segmentech průmyslu.
Klikněte sem a prohlédněte si seznam 50+ vyřešených, komplexních řešení projektů v oblasti velkých dat a strojového učení (opakovaně použitelný kód + videa)
Společnosti jako Amazon, Shopify, Alibaba a eBay zavádějí Apache Spark pro svá nasazení v oblasti velkých dat – očekává se, že poptávka po vývojářích Spark poroste exponenciálně. Trendy Google Trends potvrzují „hokejový růst“ v oblasti zavádění technologie Spark v podnicích a povědomí o ní mezi organizacemi napříč různými odvětvími. Spark se stává populárním díky své schopnosti zvládat streamování událostí a zpracovávat velká data rychleji než Hadoop MapReduce. Rok 2017 je nejvhodnějším obdobím pro zdokonalení dovedností v oblasti Apache Spark a dosažení plodné kariéry profesionála v oblasti analýzy dat, datového vědce nebo vývojáře velkých dat.
Tyto projekty Apache Spark vám pomohou rozvinout dovednosti, díky nimž se budete moci ucházet o pracovní pozice vývojářů Spark.
Top 50 Apache Spark Interview Questions and Answers
Příprava je velmi důležitá pro snížení nervozity při jakémkoli pracovním pohovoru na téma big data. Bez ohledu na odborné znalosti a dovednosti v oblasti velkých dat se každý uchazeč obává osobního pohovoru k zaměstnání v oblasti velkých dat. Ačkoli nelze přesně předpovědět, jaké otázky budou položeny při jakémkoli pracovním pohovoru na téma big data nebo spark developer – tyto otázky a odpovědi na pohovory Apache spark by vám mohly pomoci se na tyto pohovory lépe připravit.
1) Porovnejte Spark a Hadoop MapReduce
Kritéria |
Hadoop MapReduce |
Apache Spark |
Paměť |
Nevyužívá paměť clusteru Hadoop na maximum. | Ukládá data do paměti pomocí RDD. |
Využití disku |
MapReduce se orientuje na disk. | Spark cachuje data v paměti a zajišťuje nízkou latenci. |
Zpracování |
Podporováno je pouze dávkové zpracování | Podporuje zpracování v reálném čase prostřednictvím Spark Streaming. |
Instalace |
Je vázán na Hadoop. | Není vázán na Hadoop. |
Jednoduchost, flexibilita a výkon jsou hlavní výhody použití Sparku oproti Hadoop.
- Spark je při zpracování velkých dat stokrát rychlejší než Hadoop, protože ukládá data do paměti tím, že je umisťuje do odolných distribuovaných databází (RDD).
- Spark se snadněji programuje, protože je vybaven interaktivním režimem.
- Poskytuje kompletní obnovu pomocí lineárního grafu, kdykoli se něco pokazí.
Přečtěte si Spark vs Hadoop
Klikněte sem a prohlédněte si 52+ vyřešených, opakovaně použitelných řešení projektů v oblasti velkých dat – Spark
2) Co je Shark?
Většina uživatelů dat zná pouze SQL a neumí dobře programovat. Shark je nástroj vyvinutý pro lidi, kteří jsou z databázového prostředí – pro přístup k možnostem Scala MLib prostřednictvím rozhraní Hive podobného SQL. Nástroj Shark pomáhá uživatelům dat provozovat Hive na Sparku – nabízí kompatibilitu s metaúložištěm Hive, dotazy a daty.
3) Vyjmenujte některé případy použití, kdy Spark při zpracování předčí Hadoop.
- Zpracování dat ze senzorů – zde nejlépe funguje „In-memory computing“ Sparku, protože data se získávají a kombinují z různých zdrojů.
- Spark má přednost před Hadoopem pro dotazování dat v reálném čase
- Zpracování datových proudů – Pro zpracování logů a detekci podvodů v živých tocích pro výstrahy je nejlepším řešením Apache Spark.
4) Co je řídký vektor?
Rídký vektor má dvě paralelní pole – jedno pro indexy a druhé pro hodnoty. Tyto vektory se používají pro ukládání nenulových položek, aby se ušetřilo místo.
5) Co je RDD?
RDD (Resilient Distributed Datasets) jsou základní abstrakcí v Apache Spark, která reprezentuje data přicházející do systému v objektovém formátu. RDD se používají pro výpočty v paměti na velkých clusterech, a to způsobem odolným proti chybám. RDD jsou porcované kolekce záznamů určené pouze pro čtení, které jsou –
- Immutable – RDD nelze měnit.
- Resilient – Pokud dojde k poruše uzlu, který drží oddíl, převezme data jiný uzel.
Vytvořte si portfolio projektů Big Data prací na projektech apache spark v reálném čase
6) Vysvětlete něco o transformacích a akcích v kontextu RDD.
Transformace jsou funkce prováděné na vyžádání, jejichž cílem je vytvořit nový RDD. Po všech transformacích následují akce. Mezi příklady transformací patří map, filter a reduceByKey.
Akce jsou výsledky výpočtů nebo transformací RDD. Po provedení akce se data z RDD přesunou zpět do místního počítače. Mezi příklady akcí patří reduce, collect, first a take.
7) Jaké jazyky podporuje Apache Spark pro vývoj aplikací pro big data?
Scala, Java, Python, R a Clojure
8) Lze pomocí Sparku přistupovat k datům uloženým v databázích Cassandra a analyzovat je?
Ano, je to možné, pokud použijete Spark Cassandra Connector.
9) Je možné provozovat Apache Spark na Apache Mesos?
Ano, Apache Spark lze provozovat na hardwarových clusterech spravovaných systémem Mesos.
10) Vysvětlete, jaké jsou různé správce clusterů v Apache Spark
V Apache Spark jsou podporovány 3 různé správce clusterů:
- YARN
- Apache Mesos -Má bohaté možnosti plánování zdrojů a je vhodný pro provoz Sparku spolu s dalšími aplikacemi. Je výhodný, když více uživatelů spouští interaktivní shelly, protože škáluje přidělení procesoru mezi příkazy.
- Nasazení Standalone – Dobře se hodí pro nová nasazení, která pouze běží a snadno se nastavují.
11) Jak lze Spark připojit k Apache Mesos?
Pro připojení Sparku k Mesosu-
- Nakonfigurujte program ovladače Spark pro připojení k Mesosu. Binární balíček Spark by měl být na místě přístupném pro Mesos. (nebo)
- Nainstalujte Apache Spark do stejného umístění jako Apache Mesos a nakonfigurujte vlastnost ‚spark.mesos.executor.home‘ tak, aby ukazovala na umístění, kde je nainstalován.
12) Jak můžete minimalizovat přenosy dat při práci se Sparkem?
Minimalizace přenosů dat a zamezení promíchávání pomáhá psát programy Spark, které běží rychle a spolehlivě. Různé způsoby, jak lze minimalizovat přenosy dat při práci s Apache Spark, jsou:
- Použití proměnné Broadcast – proměnná Broadcast zvyšuje efektivitu spojování malých a velkých RDD.
- Používání akumulátorů – Akumulátory pomáhají při provádění paralelně aktualizovat hodnoty proměnných.
- Nejčastějším způsobem je vyhnout se operacím ByKey, repartition nebo jiným operacím, které vyvolávají promíchání.
13) Proč jsou při práci s Apache Spark potřeba broadcast proměnné?
Jedná se o proměnné pouze pro čtení, které jsou přítomny v cache paměti na každém počítači. Při práci se Sparkem použití broadcast proměnných eliminuje nutnost posílat kopie proměnné pro každou úlohu, takže data mohou být zpracována rychleji. Vysílané proměnné pomáhají při ukládání vyhledávací tabulky uvnitř paměti, což zvyšuje efektivitu načítání ve srovnání s vyhledáváním RDD ().
14) Je možné provozovat Spark a Mesos společně s Hadoopem?
Ano, Spark a Mesos je možné provozovat společně s Hadoopem tak, že každou z těchto služeb spustíte na strojích jako samostatnou službu. Mesos funguje jako jednotný plánovač, který přiřazuje úlohy buď Sparku, nebo Hadoopu.
15) Co je to lineární graf?
RDD ve Sparku, závisí na jednom nebo více jiných RDD. Reprezentace závislostí mezi RDD se nazývá lineage graf. Informace o lineage grafu se používají k výpočtu každého RDD na vyžádání, takže kdykoli dojde ke ztrátě části perzistentního RDD, lze ztracená data obnovit pomocí informací o lineage grafu.
16) Jak můžete ve Sparku spustit automatické čištění, aby se zpracovala nahromaděná metadata?
Čištění můžete spustit nastavením parametru ‚spark.cleaner.ttl‘ nebo rozdělením dlouho běžících úloh do různých dávek a zapsáním mezivýsledků na disk.
17) Vysvětlete, jaké hlavní knihovny tvoří ekosystém Spark
- Spark MLib- knihovna strojového učení ve Sparku pro běžně používané algoritmy učení, jako je shlukování, regrese, klasifikace atd.
- Spark Streaming – Tato knihovna slouží ke zpracování streamovaných dat v reálném čase.
- Spark GraphX – Spark API pro paralelní výpočty grafů se základními operátory jako joinVertices, subgraph, aggregateMessages atd.
- Spark SQL – Pomáhá provádět dotazy typu SQL nad daty Spark pomocí standardních vizualizačních nebo BI nástrojů.
18) Jaké jsou výhody použití Sparku s Apache Mesos?
Zajišťuje škálovatelné rozdělení mezi různé instance Sparku a dynamické rozdělení mezi Sparkem a dalšími frameworky pro big data.
19) Jaký význam má operace Sliding Window?
Sliding Window řídí přenos datových paketů mezi různými počítačovými sítěmi. Knihovna Spark Streaming poskytuje výpočty v okně, kdy se transformace na RDD aplikují nad posuvným oknem dat. Kdykoli se okno posune, RDD, které spadají do daného okna, se zkombinují a operuje se s nimi, aby vznikly nové RDD okenního DStreamu.
20) Co je DStream?
Diskrétní proud je posloupnost odolných distribuovaných databází, které představují proud dat. DStreamy lze vytvářet z různých zdrojů, například Apache Kafka, HDFS a Apache Flume. DStreamy mají dvě operace –
- Transformace, které vytvářejí nový DStream.
- Výstupní operace, které zapisují data do externího systému.
21) Je při spouštění aplikací Spark nutné instalovat Spark na všechny uzly clusteru YARN?
Při spouštění úlohy pod YARN nebo Mesosem není nutné instalovat Spark, protože Spark se může spouštět nad clustery YARN nebo Mesos, aniž by to mělo vliv na změnu clusteru.
22) Co je to Catalyst framework?
Catalyst framework je nový optimalizační framework přítomný ve Spark SQL. Umožňuje Sparku automaticky transformovat dotazy SQL přidáním nových optimalizací a vytvořit tak rychlejší systém zpracování.
23) Jmenujte několik společností, které používají Apache Spark v produkci.
Pinterest, Conviva, Shopify, Open Table
24) Která knihovna Sparku umožňuje spolehlivé sdílení souborů s rychlostí paměti v různých frameworcích clusteru?
Tachyon
Pracujte na zajímavých projektech datové vědy pomocí Sparku a vytvořte si působivé portfolio projektů!
25) Proč se používá BlinkDB?
BlinkDB je dotazovací engine pro provádění interaktivních dotazů SQL na obrovských objemech dat a vykresluje výsledky dotazů označené smysluplnými chybovými sloupci. BlinkDB pomáhá uživatelům vyvážit „přesnost dotazu“ s dobou odezvy.
26) Jak můžete porovnat Hadoop a Spark z hlediska snadnosti použití?
Hadoop MapReduce vyžaduje programování v jazyce Java, což je obtížné, i když Pig a Hive to značně usnadňují. Naučit se syntaxi Pig a Hive vyžaduje čas. Spark má interaktivní rozhraní API pro různé jazyky, jako je Java, Python nebo Scala, a obsahuje také Shark, tedy Spark SQL pro milovníky SQL – díky tomu je jeho používání relativně jednodušší než u Hadoopu.
27) Jaké jsou časté chyby, kterých se vývojáři dopouštějí při spouštění aplikací Spark?
Vývojáři často dělají tyto chyby:
- Používáním více clusterů spustí webovou službu několikrát.
- Spustí vše na lokálním uzlu místo toho, aby to distribuovali.
Vývojáři si na to musí dát pozor, protože Spark využívá ke zpracování paměť.
28) Jaká je výhoda souboru Parquet?
Parquet soubor je soubor ve sloupcovém formátu, který pomáhá –
- Omezit I/O operace
- Zabírá méně místa
- Vybírá pouze požadované sloupce.
29) Jaké jsou různé zdroje dat dostupné ve SparkSQL?
- Parquet file
- JSON Datasets
- Hive tables
30) Jak Spark využívá Hadoop?
Spark má vlastní výpočetní cluster management a pro ukládání dat využívá především Hadoop.
Pro kompletní seznam vyřešených projektů pro zpracování velkých objemů dat – KLIKNĚTE ZDE
31) Jaké jsou klíčové vlastnosti Apache Spark, které se vám líbí?
- Spark poskytuje pokročilé analytické možnosti, jako jsou grafové algoritmy, strojové učení, streamování dat atd
- Má vestavěná rozhraní API v několika jazycích, jako jsou Java, Scala, Python a R
- Má dobrý nárůst výkonu, protože pomáhá spustit aplikaci v clusteru Hadoop desetkrát rychleji na disku a stokrát rychleji v paměti.
32) Co rozumíte pod pojmem Pair RDD?
Speciální operace lze ve Sparku provádět nad RDD pomocí dvojic klíč/hodnota a takové RDD se označují jako Pair RDD. Párové RDD umožňují uživatelům přistupovat ke každému klíči paralelně. Mají metodu reduceByKey (), která shromažďuje data na základě každého klíče, a metodu join (), která spojuje různé RDD dohromady na základě prvků se stejným klíčem.
33) Který z nich si vyberete pro projekt -Hadoop MapReduce nebo Apache Spark?
Odpověď na tuto otázku závisí na scénáři daného projektu – jak známo, Spark využívá paměť namísto síťových a diskových I/O operací. Spark však využívá velké množství paměti RAM a k dosažení efektivních výsledků vyžaduje vyhrazený stroj. Rozhodnutí o použití Hadoopu nebo Sparku se tedy dynamicky mění podle požadavků projektu a rozpočtu organizace.
34) Vysvětlete různé typy transformací na DStreamech?
- Bezstavové transformace – zpracování dávky nezávisí na výstupu předchozí dávky. Příklady – map (), reduceByKey (), filter ().
- Stateful Transformations- Zpracování dávky závisí na mezivýsledcích předchozí dávky. Příklady -Transformace závislé na posuvných oknech.
35) Vysvětlete populární případy použití Apache Spark
Apache Spark se používá především pro
- Iterativní strojové učení.
- Interaktivní analýza a zpracování dat.
- Zpracování datových proudů
- Zpracování dat ze senzorů
36) Je Apache Spark vhodný pro Reinforcement learning?
Ne. Apache Spark funguje dobře pouze pro jednoduché algoritmy strojového učení, jako je shlukování, regrese, klasifikace.
37) Co je Spark Core?
Má všechny základní funkce Sparku, jako jsou – správa paměti, obnova po poruše, interakce s úložnými systémy, plánování úloh atd.
38) Jak můžete odstranit prvky s klíčem přítomným v jakémkoli jiném RDD?
Použijte funkci subtractByKey ()
39) Jaký je rozdíl mezi persist() a cache()
persist () umožňuje uživateli určit úroveň ukládání, zatímco cache () používá výchozí úroveň ukládání.
40) Jaké jsou různé úrovně perzistence v Apache Spark?
Apache Spark automaticky perzistuje mezidata z různých operací míchání, nicméně často se doporučuje, aby uživatelé volali metodu persist () na RDD v případě, že je plánují znovu použít. Spark má různé úrovně persistence pro ukládání RDD na disk nebo do paměti nebo jako kombinaci obojího s různými úrovněmi replikace.
Různé úrovně ukládání/perzistence ve Sparku jsou –
- MEMORY_ONLY
- MEMORY_ONLY_SER
- MEMORY_AND_DISK
- MEMORY_AND_DISK_SER, DISK_ONLY
- OFF_HEAP
41) Jak Spark řeší monitorování a logování v režimu Standalone?
Spark má webové uživatelské rozhraní pro monitorování clusteru v samostatném režimu, které zobrazuje statistiky clusteru a úloh. Výstupy protokolů pro každou úlohu se zapisují do pracovního adresáře podřízených uzlů.
42) Poskytuje Apache Spark kontrolní ukazování?
K obnově RDD po selhání jsou vždy užitečné lineární grafy, ale to je obecně časově náročné, pokud mají RDD dlouhé lineární řetězce. Spark má API pro check pointing, tj. příznak REPLICATE pro persistenci. O tom, která data kontrolovat – však rozhoduje uživatel. Kontrolní body jsou užitečné, když jsou lineage grafy dlouhé a mají široké závislosti.
43) Jak můžete spouštět úlohy Spark uvnitř Hadoop MapReduce?
Pomocí SIMR (Spark in MapReduce) mohou uživatelé spouštět libovolné úlohy Spark uvnitř MapReduce, aniž by potřebovali administrátorská práva.
44) Jak Spark používá Akka?
Spark používá Akka v podstatě pro plánování. Všechny workery si po registraci vyžádají úlohu pro master. Master pouze přidělí úlohu. Zde Spark používá Akka pro zasílání zpráv mezi workery a mastery.
45) Jak lze dosáhnout vysoké dostupnosti v Apache Spark?
- Využití obnovy jednoho uzlu s lokálním souborovým systémem
- Využití StandBy Masters s Apache ZooKeeper.
46) Hadoop používá replikaci k dosažení odolnosti proti chybám. Jak je toho dosaženo v Apache Spark?
Model ukládání dat v Apache Spark je založen na RDD. RDD pomáhají dosáhnout odolnosti proti poruchám prostřednictvím lineárního uspořádání. RDD má vždy informaci o tom, jak se sestavuje z jiných datových sad. Pokud dojde ke ztrátě některého oddílu RDD v důsledku poruchy, lineage pomáhá sestavit pouze tento konkrétní ztracený oddíl.
47) Vysvětlete, jaké jsou základní komponenty distribuované aplikace Spark.
- Řidič – Proces, který spouští metodu main () programu a vytváří RDD a provádí na nich transformace a akce.
- Executor -Dělnické procesy, které spouštějí jednotlivé úlohy úlohy Sparku.
- Správce clusteru – Zapojitelná komponenta ve Sparku, která spouští Executory a Drivery. Správce clusteru umožňuje Sparku běžet nad jinými externími správci, jako je Apache Mesos nebo YARN.
48) Co rozumíte pod pojmem Lazy Evaluation (líné vyhodnocování)?
Spark je intelektuální ve způsobu, jakým pracuje s daty. Když Sparku řeknete, aby pracoval s danou sadou dat, dbá na pokyny a poznamená si je, aby je nezapomněl – ale neudělá nic, pokud není požádán o konečný výsledek. Když se na RDD zavolá transformace jako map () – operace se neprovede okamžitě. Transformace ve Sparku se vyhodnocují až po provedení akce. To pomáhá optimalizovat celkový pracovní postup zpracování dat.
49) Definujte pracovní uzel.
Uzel, který může spouštět kód aplikace Spark v clusteru, lze nazvat pracovním uzlem. Pracovní uzel může mít více než jednoho pracovníka, což se konfiguruje nastavením vlastnosti SPARK_ WORKER_INSTANCES v souboru spark-env.sh. Pokud není definována vlastnost SPARK_ WORKER_INSTANCES, spustí se pouze jeden worker.
50) Co rozumíte pod pojmem SchemaRDD?
RDD, který se skládá z řádkových objektů (obalů kolem základních řetězcových nebo celočíselných polí) s informacemi o schématu o typu dat v jednotlivých sloupcích.
51) Jaké jsou nevýhody používání Apache Spark oproti Hadoop MapReduce?
Apache Spark se špatně škáluje pro výpočetně náročné úlohy a spotřebovává velké množství systémových prostředků. Schopnost Apache Spark pracovat v paměti někdy přichází jako hlavní překážka pro nákladově efektivní zpracování velkých dat. Spark má také vlastní systém správy souborů, a proto je třeba jej integrovat s dalšími cloudovými datovými platformami nebo Apache Hadoop.
52) Je nutné při provozu Apache Spark na YARN instalovat spark na všechny uzly clusteru YARN ?
Ne , není to nutné, protože Apache Spark běží nad YARN.
53) Co rozumíte pod pojmem paměť exekutoru v aplikaci Spark?
Každá aplikace Spark má stejnou pevnou velikost haldy a pevný počet jader pro exekutor Spark. Velikost haldy je to, co se označuje jako paměť vykonavatele Spark, která se řídí pomocí vlastnosti spark.executor.memory příznaku -executor-memory. Každá aplikace Spark bude mít na každém pracovním uzlu jeden executor. Paměť exekutoru je v podstatě měřítkem toho, kolik paměti pracovního uzlu bude aplikace využívat.
54) Co dělá Spark Engine?
Spark Engine plánuje, distribuuje a monitoruje datovou aplikaci napříč clusterem Spark.
55) Díky čemu je Apache Spark dobrý pro pracovní zátěže s nízkou latencí, jako je zpracování grafů a strojové učení?
Apache Spark ukládá data do paměti pro rychlejší tvorbu a trénování modelů. Algoritmy strojového učení vyžadují více iterací pro vytvoření výsledného optimálního modelu a podobně grafové algoritmy procházejí všechny uzly a hrany. tyto pracovní zátěže s nízkou latencí, které vyžadují více iterací, mohou vést ke zvýšení výkonu. Méně přístupu na disk a řízený síťový provoz představují obrovský rozdíl, když je třeba zpracovat velké množství dat.
56) Je nutné spustit Hadoop, aby bylo možné spustit jakoukoli aplikaci Apache Spark ?
Spuštění Hadoopu není pro spuštění jakékoli aplikace Spark povinné. Protože v Apache Spark není žádné oddělené úložiště, používá Hadoop HDFS, ale není to povinné. Data mohou být uložena v lokálním souborovém systému, mohou být načtena z lokálního souborového systému a zpracována.
57) Jaká je výchozí úroveň paralelismu v aplikaci Apache Spark?
Pokud uživatel výslovně neuvede, pak se za výchozí úroveň paralelismu v aplikaci Apache Spark považuje počet oddílů.
58) Vysvětlete běžný pracovní postup programu Spark
- Především krok v programu Spark zahrnuje vytvoření vstupních RDD z externích dat.
- Použití různých transformací RDD, jako je filter(), k vytvoření nových transformovaných RDD na základě obchodní logiky.
- Perspektiva() všech meziproduktů RDD, které by mohly být v budoucnu znovu použity.
- Spuštění různých akcí RDD(), jako je first(), count(), k zahájení paralelního výpočtu , který pak Spark optimalizuje a provede.
59) Jak v daném programu Spark určíte, zda je daná operace transformací nebo akcí ?
Operaci lze určit na základě návratového typu –
i) Operace je akcí, pokud je návratový typ jiný než RDD.
ii) Operace je transformací, pokud je návratový typ stejný jako RDD.
60) Jakou podle vás dělají vývojáři Apache Spark častou chybu při používání Sparku ?
- Zachování požadované velikosti bloků shuffle.
- Vývojáři Sparku často chybují při správě směrovaných acyklických grafů (DAG).
61) Předpokládejme, že existuje RDD s názvem ProjectPrordd, který obsahuje obrovský seznam čísel. Pro výpočet průměru je napsán následující kód Spark –
def ProjectProAvg(x, y):
return (x+y)/2.0;
avg = ProjectPrordd.reduce(ProjectProAvg);
Co je ve výše uvedeném kódu špatně a jak to opravíte?
Funkce průměru není ani komutativní, ani asociativní. Nejlepší způsob, jak vypočítat průměr, je nejprve jej sečíst a pak vydělit počtem, jak je uvedeno níže –
def sum(x, y):
return x+y;
total =ProjectPrordd.reduce(sum);
avg = total / ProjectPrordd.count();
Výše uvedený kód by však mohl vést k přetečení, pokud by byl součet velký. Nejlepší způsob výpočtu průměru je tedy vydělit každé číslo počtem a pak sečíst, jak je uvedeno níže –
cnt = ProjectPrordd.count();
def divideByCnt(x):
return x/cnt;
myrdd1 = ProjectPrordd.map(divideByCnt);
avg = ProjectPrordd.reduce(sum);
Q. Řekněme, že mám obrovský seznam čísel v souboru na HDFS. Každý řádek má jedno číslo. a chci kom
Spark SQL Interview Questions
1) Vysvětlete rozdíl mezi Spark SQL a Hive.
- Spark SQL je rychlejší než Hive.
- Každý dotaz Hive lze snadno provést ve Spark SQL, ale naopak to neplatí.
- Spark SQL je knihovna, zatímco Hive je framework.
- Ve Spark SQL není nutné vytvářet metaúložiště, ale v Hive je nutné vytvořit metaúložiště.
- Spark SQL automaticky odvozuje schéma, zatímco v Hive je nutné schéma explicitně deklarovat.
- Spark SQL je v..
Otázky k pohovoru na Spark Streaming
1) Vyjmenujte některé zdroje, ze kterých může komponenta Spark Streaming zpracovávat data v reálném čase.
Apache Flume, Apache Kafka, Amazon Kinesis
2) Vyjmenujte některé společnosti, které již Spark Streaming používají.
Uber, Netflix, Pinterest.
3) Co je spodní vrstvou abstrakce v rozhraní API Spark Streaming?
DStream.
4) Co rozumíte pod pojmem přijímače ve Spark Streaming?
Přijímače jsou speciální entity ve Spark Streaming, které přijímají data z různých zdrojů dat a přesouvají je do Apache Spark. Receivery jsou obvykle vytvářeny streamingovými kontexty jako dlouhodobě běžící úlohy na různých executorech a naplánovány tak, aby pracovaly round robin způsobem, přičemž každý receiver zabírá jedno jádro.
Vyzýváme komunitu big data, aby se v komentářích níže podělila o nejčastěji kladené otázky a odpovědi na pohovory k Apache Spark – usnadníme tak pracovní pohovory k big data všem budoucím profesionálům v oblasti analytiky.
5) Jak vypočtete počet executorů potřebných pro zpracování v reálném čase pomocí Apache Spark? Jaké faktory je třeba vzít v úvahu při rozhodování o počtu uzlů pro zpracování v reálném čase?
O počtu uzlů lze rozhodnout na základě benchmarkingu hardwaru a zvážení více faktorů, jako je optimální propustnost (rychlost sítě), využití paměti, použitý prováděcí rámec (YARN, Standalone nebo Mesos) a zvážení dalších úloh, které běží v těchto prováděcích rámcích spolu se Sparkem.
6) Jaký je rozdíl mezi Spark Transform v DStream a map ?
funkce transform ve spark streamu umožňuje vývojářům používat transformace Apache Spark na podkladových RDD pro stream. funkce map v hadoopu se používá pro transformaci z prvku na prvek a může být implementována pomocí transform. v ideálním případě , map pracuje na prvcích Dstreamu a transform umožňuje vývojářům pracovat s RDD DStreamu. map je elementární transformace, zatímco transform je transformace RDD.
Podívejte se na nejlepší otázky na pohovory Scala pro vývojáře Spark.