Top 50 Spark Interview Questions and Answers for 2021

Last Updated: 25 Jan 2021

Apache Spark Interview Questions and Answers 2017

Pytania zadawane na rozmowie kwalifikacyjnej big data developer lub apache spark developer job interview mogą należeć do jednej z następujących kategorii w oparciu o Spark Ecosystem Components -.

  • Spark Basic Interview Questions
  • Spark SQL Interview Questions
  • Spark MLlib Interview Questions
  • Spark Streaming Interview Questions

Dodatkowo, wykazanie się doświadczeniem projektowym w następujących dziedzinach jest kluczowe –

  1. ProjektySpark Streaming
  2. ProjektySpark MLib
  3. ProjektyApache Spark
  4. ProjektyPySpark

Wraz z rosnącym zapotrzebowaniem branży, do przetwarzania big data w szybszym tempie -Apache Spark zyskuje ogromny impet, jeśli chodzi o adopcję w przedsiębiorstwach. Hadoop MapReduce dobrze wspierał potrzebę szybkiego przetwarzania dużych danych, ale zawsze istniała potrzeba wśród deweloperów, aby nauczyć się bardziej elastycznych narzędzi, aby nadążyć za rynkiem średniej wielkości dużych zbiorów danych, do przetwarzania danych w czasie rzeczywistym w ciągu kilku sekund.

Aby wesprzeć impet szybszego przetwarzania dużych danych, rośnie zapotrzebowanie na programistów Apache Spark, którzy mogą potwierdzić swoją wiedzę w zakresie wdrażania najlepszych praktyk dla Spark – do budowania złożonych rozwiązań big data. We współpracy z ekspertami z branży big data stworzyliśmy listę 50 najlepszych pytań i odpowiedzi, które pomogą studentom/profesjonalistom w przeprowadzeniu wywiadu z programistą big data i przyczynią się do zwiększenia podaży talentów dla programistów Spark w różnych segmentach przemysłu.

Kliknij tutaj, aby wyświetlić listę 50+ rozwiązanych, end-to-end Big Data i Machine Learning rozwiązań projektowych (kod wielokrotnego użytku + filmy)

Firmy takie jak Amazon, Shopify, Alibaba i eBay przyjmują Apache Spark dla swoich wdrożeń big data – oczekuje się, że zapotrzebowanie na programistów Spark będzie rosło wykładniczo. Google Trends potwierdza „hokejowy wzrost” w przyjęciu Sparka przez przedsiębiorstwa i świadomości wśród organizacji z różnych branż. Spark staje się popularny ze względu na swoją zdolność do obsługi strumieniowania zdarzeń i przetwarzania dużych danych szybciej niż Hadoop MapReduce. 2017 to najlepszy czas, aby doskonalić swoje umiejętności Apache Spark i realizować owocną karierę jako profesjonalista analityki danych, naukowiec danych lub programista big data.

Te projekty Apache Spark pomogą Ci rozwinąć umiejętności, które sprawią, że będziesz kwalifikować się do ubiegania się o role pracy dewelopera Spark.

Top 50 Apache Spark Interview Questions and Answers

Przygotowanie jest bardzo ważne, aby zmniejszyć nerwowość na każdej rozmowie o pracę z big data. Niezależnie od ekspertyzy big data i umiejętności jeden posiada, każdy kandydat boi się twarzą w twarz z big data rozmowy kwalifikacyjnej. Chociaż nie ma sposobu, aby przewidzieć dokładnie, jakie pytania zostaną zadane w każdej rozmowie kwalifikacyjnej z programistą big data lub spark – te pytania i odpowiedzi Apache spark interview mogą pomóc ci lepiej przygotować się do tych rozmów.

Spark Interview Questions and Answers

1) Porównaj Spark vs Hadoop MapReduce

.

Spark vs Hadoop

Kryteria

Hadoop MapReduce

Apache Spark

Pamięć

Nie wykorzystuje pamięci klastra hadoop do maksimum. Oszczędza dane w pamięci za pomocą RDD.

Użycie dysku

MapReduce jest zorientowane na dysk. Spark buforuje dane w pamięci i zapewnia niskie opóźnienia.

Przetwarzanie

Obsługiwane jest tylko przetwarzanie wsadowe Obsługuje przetwarzanie w czasie rzeczywistym poprzez strumieniowanie iskry.

Instalacja

Jest powiązana z hadoop. Nie jest powiązana z Hadoop.

Porównanie Spark vs Hadoop

Prostota, elastyczność i wydajność to główne zalety używania Spark w porównaniu z Hadoop.

  • Spark jest 100 razy szybszy niż Hadoop w przetwarzaniu dużych danych, ponieważ przechowuje dane w pamięci, umieszczając je w Resilient Distributed Databases (RDD).
  • Spark jest łatwiejszy do programowania, ponieważ posiada tryb interaktywny.
  • Zapewnia pełne odzyskiwanie danych przy użyciu grafu liniowego, gdy coś pójdzie nie tak.

Refer Spark vs Hadoop
Kliknij tutaj, aby zobaczyć 52+ rozwiązanych, wielokrotnego użytku rozwiązań projektowych w Big Data – Spark

2) Czym jest Shark?

Większość użytkowników danych zna tylko SQL i nie jest dobra w programowaniu. Shark jest narzędziem stworzonym dla osób, które znają się na bazach danych – aby uzyskać dostęp do możliwości MLib w Scali poprzez interfejs Hive podobny do SQL. Narzędzie Shark pomaga użytkownikom danych uruchomić Hive na Spark – oferując kompatybilność z metastorem Hive, zapytaniami i danymi.

3) Wymień kilka przypadków użycia, w których Spark przewyższa Hadoop w przetwarzaniu.

  1. Przetwarzanie danych z czujników – 'In-memory computing’ Apache Spark działa tutaj najlepiej, ponieważ dane są pobierane i łączone z różnych źródeł.
  2. Spark jest preferowany w stosunku do Hadoop do odpytywania danych w czasie rzeczywistym
  3. Przetwarzanie strumieniowe – Do przetwarzania logów i wykrywania oszustw w strumieniach na żywo w celu wysyłania alarmów, Apache Spark jest najlepszym rozwiązaniem.

4) Co to jest wektor rzadki?

Wektor rzadki ma dwie równoległe tablice – jedną dla indeksów, a drugą dla wartości. Te wektory są używane do przechowywania niezerowych wpisów, aby zaoszczędzić miejsce.

5) Co to jest RDD?

RDD (Resilient Distributed Datasets) są podstawową abstrakcją w Apache Spark, która reprezentuje dane przychodzące do systemu w formacie obiektowym. RDD są używane do obliczeń in-memory na dużych klastrach, w sposób odporny na błędy. RDD są porcjami tylko do odczytu, kolekcją rekordów, które są –

  • Immutable – RDD nie mogą być zmienione.
  • Resilient – Jeśli węzeł przechowujący partycję ulegnie awarii, drugi węzeł przejmuje dane.

Buduj portfolio projektów Big Data poprzez pracę nad projektami apache spark w czasie rzeczywistym

6) Wyjaśnij o transformacjach i akcjach w kontekście RDD.

Transformacje są funkcjami wykonywanymi na żądanie, w celu wytworzenia nowego RDD. Po wszystkich transformacjach następują akcje. Niektóre przykłady transformacji obejmują mapy, filtry i reduceByKey.

Akcje są wynikami obliczeń lub transformacji RDD. Po wykonaniu akcji, dane z RDD wracają do lokalnej maszyny. Niektóre przykłady akcji to reduce, collect, first i take.

7) Jakie są języki obsługiwane przez Apache Spark do tworzenia aplikacji big data?

Scala, Java, Python, R i Clojure

8) Czy można użyć Sparka, aby uzyskać dostęp i analizować dane przechowywane w bazach danych Cassandra?

Tak, jest to możliwe, jeśli użyjesz Spark Cassandra Connector.

9) Czy można uruchomić Apache Spark na Apache Mesos?

Tak, Apache Spark może być uruchomiony na klastrach sprzętowych zarządzanych przez Mesos.

10) Wyjaśnij o różnych menedżerach klastrów w Apache Spark

3 różne menedżery klastrów obsługiwane w Apache Spark to:

  • YARN
  • Apache Mesos -Ma bogate możliwości planowania zasobów i dobrze nadaje się do uruchamiania Sparka wraz z innymi aplikacjami. Jest korzystny, gdy kilku użytkowników uruchamia interaktywne powłoki, ponieważ skaluje alokację procesora między poleceniami.
  • Wdrożenia Standalone – Dobrze nadaje się do nowych wdrożeń, które tylko uruchamiają i są łatwe do skonfigurowania.

11) Jak można połączyć Spark z Apache Mesos?

Aby połączyć Spark z Mesos-

  • Skonfiguruj program spark driver, aby połączyć się z Mesos. Pakiet binarny Spark powinien znajdować się w lokalizacji dostępnej dla Mesos. (lub)
  • Zainstaluj Apache Spark w tej samej lokalizacji co Apache Mesos i skonfiguruj właściwość 'spark.mesos.executor.home’, aby wskazywała na lokalizację, w której jest zainstalowany.

Big Data Hadoop i projekty Spark

12) Jak można zminimalizować transfery danych podczas pracy ze Sparkiem?

Minimalizacja transferów danych i unikanie tasowania pomaga pisać programy Sparka, które działają w sposób szybki i niezawodny. Różne sposoby minimalizowania transferu danych podczas pracy z Apache Spark to:

  1. Usługiwanie zmiennej rozgłaszającej- Zmienna rozgłaszająca zwiększa wydajność połączeń między małymi i dużymi RDD.
  2. Używanie Akumulatorów – Akumulatory pomagają aktualizować wartości zmiennych równolegle podczas wykonywania.
  3. Najczęstszym sposobem jest unikanie operacji ByKey, repartition lub jakichkolwiek innych operacji, które wyzwalają tasowania.

13) Dlaczego istnieje potrzeba stosowania zmiennych rozgłoszeniowych podczas pracy z Apache Spark?

Są to zmienne tylko do odczytu, obecne w pamięci podręcznej na każdej maszynie. Podczas pracy ze Sparkiem, użycie zmiennych rozgłoszeniowych eliminuje konieczność wysyłania kopii zmiennej dla każdego zadania, dzięki czemu dane mogą być przetwarzane szybciej. Zmienne rozgłoszeniowe pomagają w przechowywaniu tabeli wyszukującej w pamięci, co zwiększa wydajność wyszukiwania w porównaniu do wyszukiwania RDD ().

14) Czy możliwe jest uruchomienie Sparka i Mesos razem z Hadoopem?

Tak, możliwe jest uruchomienie Sparka i Mesos razem z Hadoopem poprzez uruchomienie każdego z nich jako oddzielnej usługi na maszynach. Mesos działa jako zunifikowany scheduler, który przypisuje zadania do Sparka lub Hadoopa.

15) Co to jest lineage graph?

RDD w Sparku zależą od jednego lub więcej innych RDD. Reprezentacja zależności pomiędzy RDD jest znana jako lineage graph. Informacje o grafie liniowym są używane do obliczania każdego RDD na żądanie, więc gdy część trwałego RDD zostanie utracona, dane, które zostały utracone, mogą zostać odzyskane przy użyciu informacji o grafie liniowym.

16) Jak można wywołać automatyczne czyszczenie w Spark, aby obsłużyć nagromadzone metadane?

Możesz wywołać czyszczenie, ustawiając parametr 'spark.cleaner.ttl’ lub dzieląc długo działające zadania na różne partie i zapisując pośrednie wyniki na dysku.

17) Wyjaśnij o głównych bibliotekach, które tworzą ekosystem Sparka

  • Spark MLib- Biblioteka uczenia maszynowego w Sparku dla powszechnie używanych algorytmów uczenia, takich jak klasteryzacja, regresja, klasyfikacja itp.
  • Spark Streaming – Biblioteka ta służy do przetwarzania danych strumieniowych w czasie rzeczywistym.
  • Spark GraphX – API Sparka do równoległych obliczeń grafowych z podstawowymi operatorami, takimi jak joinVertices, subgraph, aggregateMessages, itp.
  • Spark SQL – Pomaga wykonywać zapytania typu SQL na danych Sparka przy użyciu standardowych narzędzi wizualizacyjnych lub BI.

18) Jakie są korzyści z używania Sparka z Apache Mesos?

Realizuje skalowalne partycjonowanie pomiędzy różnymi instancjami Sparka i dynamiczne partycjonowanie pomiędzy Sparkiem i innymi frameworkami big data.

19) Jakie jest znaczenie operacji Sliding Window?

Sliding Window kontroluje transmisję pakietów danych pomiędzy różnymi sieciami komputerowymi. Biblioteka Spark Streaming zapewnia obliczenia okienkowe, w których transformacje na RDD są stosowane na przesuwanym oknie danych. Kiedykolwiek okno przesuwa się, RDD, które mieszczą się w danym oknie są łączone i operowane w celu wytworzenia nowych RDD w oknie DStream.

20) Co to jest DStream?

Dyskretyzowany strumień jest sekwencją odpornych rozproszonych baz danych, które reprezentują strumień danych. DStreamy mogą być tworzone z różnych źródeł, takich jak Apache Kafka, HDFS i Apache Flume. DStreams mają dwie operacje –

  • Transformacje, które produkują nowy DStream.
  • Operacje wyjściowe, które zapisują dane do zewnętrznego systemu.

21) Czy podczas uruchamiania aplikacji Spark konieczne jest zainstalowanie Sparka na wszystkich węzłach klastra YARN?

Spark nie musi być instalowany podczas uruchamiania zadania pod YARN lub Mesos, ponieważ Spark może wykonywać się na wierzchu klastrów YARN lub Mesos bez wpływu na jakiekolwiek zmiany w klastrze.

22) Czym jest Catalyst framework?

Catalyst framework to nowy framework optymalizacyjny obecny w Spark SQL. Pozwala on Sparkowi na automatyczne przekształcanie zapytań SQL poprzez dodawanie nowych optymalizacji w celu zbudowania szybszego systemu przetwarzania.

23) Wymień kilka firm, które używają Apache Spark w produkcji.

Pinterest, Conviva, Shopify, Open Table

24) Która biblioteka spark pozwala na niezawodne współdzielenie plików z prędkością pamięci w różnych frameworkach klastrowych?

Tachyon

Work On Interesting Data Science Projects using Spark to build an impressive project portfolio!

25) Dlaczego używa się BlinkDB?

BlinkDB jest silnikiem zapytań do wykonywania interaktywnych zapytań SQL na ogromnych ilościach danych i renderuje wyniki zapytań oznaczone znaczącymi paskami błędów. BlinkDB pomaga użytkownikom zrównoważyć 'dokładność zapytania’ z czasem odpowiedzi.

26) Jak można porównać Hadoop i Spark pod względem łatwości użycia?

Hadoop MapReduce wymaga programowania w Javie, co jest trudne, choć Pig i Hive znacznie to ułatwiają. Nauka składni Pig i Hive zajmuje trochę czasu. Spark posiada interaktywne API dla różnych języków, takich jak Java, Python czy Scala, a także zawiera Shark, czyli Spark SQL dla miłośników SQL – dzięki czemu jest stosunkowo łatwiejszy w użyciu niż Hadoop.

27) Jakie są najczęstsze błędy popełniane przez programistów podczas uruchamiania aplikacji Spark?

Deweloperzy często popełniają błąd polegający na-

  • Uderzaniu w usługę sieciową kilka razy poprzez używanie wielu klastrów.
  • Uruchamianiu wszystkiego na węźle lokalnym zamiast dystrybucji.

Deweloperzy muszą być z tym ostrożni, ponieważ Spark wykorzystuje pamięć do przetwarzania.

28) Jaka jest zaleta pliku Parquet?

Plik Parquet jest plikiem w formacie kolumnowym, który pomaga –

  • Ograniczyć operacje I/O
  • Zajmuje mniej miejsca
  • Pobierać tylko wymagane kolumny.

29) Jakie są różne źródła danych dostępne w SparkSQL?

  • Parquet file
  • JSON Datasets
  • Hive tables

30) W jaki sposób Spark używa Hadoop?

Spark ma własne obliczenia do zarządzania klastrem i głównie używa Hadoop do przechowywania danych.

Aby uzyskać pełną listę rozwiązanych projektów Big Data – KLIKNIJ TUTAJ

31) Jakie są kluczowe cechy Apache Spark, które Ci się podobają?

  • Spark zapewnia zaawansowane opcje analityczne, takie jak algorytmy grafowe, uczenie maszynowe, dane strumieniowe itp
  • Ma wbudowane interfejsy API w wielu językach, takich jak Java, Scala, Python i R
  • Ma dobre zyski wydajności, ponieważ pomaga uruchomić aplikację w klastrze Hadoop dziesięć razy szybciej na dysku i 100 razy szybciej w pamięci.

32) Co rozumiesz przez Pair RDD?

Specjalne operacje mogą być wykonywane na RDD w Spark przy użyciu par klucz/wartość i takie RDD są określane jako Pair RDD. Pair RDD pozwalają użytkownikom na równoległy dostęp do każdego klucza. Mają metodę reduceByKey (), która zbiera dane w oparciu o każdy klucz i metodę join (), która łączy różne RDD razem, w oparciu o elementy mające ten sam klucz.

33) Który z nich wybierzesz dla projektu -Hadoop MapReduce lub Apache Spark?

Odpowiedź na to pytanie zależy od danego scenariusza projektu – jak wiadomo, Spark wykorzystuje pamięć zamiast sieci i dysku I / O. Jednak Spark wykorzystuje dużą ilość pamięci RAM i wymaga dedykowanej maszyny do uzyskania efektywnych wyników. Tak więc decyzja o użyciu Hadoop lub Spark zmienia się dynamicznie wraz z wymaganiami projektu i budżetem organizacji.

34) Wyjaśnij o różnych typach transformacji na DStreams?

  • Stateless Transformations- Przetwarzanie partii nie zależy od wyjścia poprzedniej partii. Przykłady – map (), reduceByKey (), filter ().
  • Stateful Transformations- Przetwarzanie partii zależy od pośrednich wyników poprzedniej partii. Przykłady -Transformacje, które zależą od okien przesuwnych.

35) Wyjaśnij o popularnych przypadkach użycia Apache Spark

Apache Spark jest głównie używany do

  • Iteracyjnego uczenia maszynowego.
  • Interaktywnej analityki i przetwarzania danych.
  • Przetwarzania strumieniowego
  • Przetwarzania danych czujnikowych

36) Czy Apache Spark dobrze nadaje się do Reinforcement learning?

37) Czym jest Spark Core?

Posiada wszystkie podstawowe funkcjonalności Sparka, takie jak – zarządzanie pamięcią, odzyskiwanie błędów, interakcja z systemami pamięci masowej, planowanie zadań, itp.

38) Jak można usunąć elementy z kluczem obecnym w dowolnym innym RDD?

Użyj funkcji subtractByKey ()

39) Jaka jest różnica między persist() i cache()

persist () pozwala użytkownikowi określić poziom przechowywania, podczas gdy cache () używa domyślnego poziomu przechowywania.

40) Jakie są różne poziomy trwałości w Apache Spark?

Apache Spark automatycznie persystuje dane pośrednie z różnych operacji tasowania, jednak często sugeruje się, aby użytkownicy wywoływali metodę persist () na RDD w przypadku, gdy planują ponowne użycie. Spark ma różne poziomy trwałości, aby przechowywać RDD na dysku lub w pamięci lub jako kombinację obu z różnymi poziomami replikacji.

Różne poziomy przechowywania/persystencji w Spark to –

  • MEMORY_ONLY
  • MEMORY_ONLY_SER
  • MEMORY_AND_DISK
  • MEMORY_AND_DISK_SER, DISK_ONLY
  • OFF_HEAP

41) Jak Spark obsługuje monitorowanie i logowanie w trybie Standalone?

Spark posiada webowy interfejs użytkownika do monitorowania klastra w trybie autonomicznym, który pokazuje statystyki klastra i zadań. Wyjście dziennika dla każdego zadania jest zapisywane w katalogu roboczym węzłów slave.

42) Czy Apache Spark zapewnia check pointing?

Wykresy liniowe są zawsze przydatne do odzyskiwania RDD po awarii, ale jest to zazwyczaj czasochłonne, jeśli RDD mają długie łańcuchy liniowe. Spark posiada API dla check pointing, czyli flagę REPLICATE do persist. Jednak decyzja o tym, które dane mają być sprawdzane jest podejmowana przez użytkownika. Punkty kontrolne są użyteczne, gdy wykresy liniowe są długie i mają szerokie zależności.

43) Jak można uruchomić zadania Sparka wewnątrz Hadoop MapReduce?

Używając SIMR (Spark in MapReduce) użytkownicy mogą uruchomić dowolne zadanie Sparka wewnątrz MapReduce bez konieczności posiadania jakichkolwiek praw administratora.

44) Jak Spark używa Akka?

Spark używa Akka zasadniczo do harmonogramowania. Wszyscy pracownicy po zarejestrowaniu się proszą o zadanie do mistrza. Mistrz po prostu przydziela zadanie. Tutaj Spark używa Akki do przesyłania wiadomości między robotnikami a mistrzami.

45) Jak można osiągnąć wysoką dostępność w Apache Spark?

  • Wdrażanie odzyskiwania pojedynczego węzła z lokalnym systemem plików
  • Używanie StandBy Masters z Apache ZooKeeper.

46) Hadoop używa replikacji do osiągnięcia fault tolerance. Jak jest to osiągane w Apache Spark?

Model przechowywania danych w Apache Spark jest oparty na RDD. RDD pomagają osiągnąć fault tolerance poprzez lineage. RDD zawsze posiada informacje o tym, jak budować z innych zbiorów danych. Jeśli jakakolwiek partycja RDD zostanie utracona z powodu awarii, lineage pomaga zbudować tylko tę konkretną utraconą partycję.

47) Wyjaśnij o podstawowych komponentach rozproszonej aplikacji Spark.

  • Driver- Proces, który uruchamia metodę main () programu, aby tworzyć RDD i wykonywać na nich transformacje i działania.
  • Executor -The procesy robotnicze, które uruchamiają poszczególne zadania zadania zadania Spark.
  • Cluster Manager-A komponent wtykowy w Spark, aby uruchomić Executors i Drivers. Menedżer klastra pozwala Sparkowi działać na wierzchu innych zewnętrznych menedżerów, takich jak Apache Mesos lub YARN.

48) Co rozumiesz przez Lazy Evaluation?

Spark jest intelektualny w sposobie, w jaki operuje na danych. Kiedy mówisz Sparkowi, aby działał na danym zbiorze danych, słucha instrukcji i notuje je, aby nie zapomnieć – ale nie robi nic, chyba że zostanie poproszony o ostateczny wynik. Kiedy transformacja taka jak map () jest wywoływana na RDD – operacja nie jest wykonywana natychmiast. Transformacje w Spark nie są oceniane, dopóki nie wykonasz akcji. Pomaga to zoptymalizować ogólny przepływ pracy związany z przetwarzaniem danych.

49) Zdefiniuj węzeł robotniczy.

Węzeł, który może uruchamiać kod aplikacji Spark w klastrze, może być nazywany węzłem robotniczym. Węzeł robotniczy może mieć więcej niż jednego robotnika, co jest konfigurowane przez ustawienie właściwości SPARK_ WORKER_INSTANCES w pliku spark-env.sh. Jeśli właściwość SPARK_ WORKER_INSTANCES nie jest zdefiniowana, uruchamiany jest tylko jeden robotnik.

50) Co rozumiesz pod pojęciem SchemaRDD?

RDD, który składa się z obiektów wierszy (opakowań wokół podstawowych tablic łańcuchowych lub tablic liczb całkowitych) z informacjami o schemacie dotyczącymi typu danych w każdej kolumnie.

51) Jakie są wady używania Apache Spark w porównaniu z Hadoop MapReduce?

Apache Spark nie skaluje się dobrze dla zadań intensywnie obliczeniowych i zużywa dużą liczbę zasobów systemowych. Zdolność Apache Spark do pracy w pamięci czasami stanowi poważną przeszkodę w efektywnym kosztowo przetwarzaniu dużych danych. Ponadto Spark ma swój własny system zarządzania plikami i dlatego musi być zintegrowany z innymi platformami danych opartymi na chmurze lub apache hadoop.

52) Czy konieczne jest zainstalowanie iskry na wszystkich węzłach klastra YARN podczas uruchamiania Apache Spark na YARN?

Nie , nie jest to konieczne, ponieważ Apache Spark działa na szczycie YARN.

53) Co rozumiesz przez Pamięć Wykonawcy w aplikacji Spark?

Każda aplikacja spark ma ten sam stały rozmiar sterty i stałą liczbę rdzeni dla wykonawcy spark. Rozmiar sterty jest tym, co określa się jako pamięć executora Sparka, która jest kontrolowana za pomocą właściwości spark.executor.memory flagi -executor-memory. Każda aplikacja iskrowa będzie miała jeden executor na każdym węźle robotniczym. Pamięć executora jest w zasadzie miarą tego, ile pamięci węzła robotniczego wykorzysta aplikacja.

54) Co robi silnik Spark?

Silnik Spark planuje, dystrybuuje i monitoruje aplikację danych w klastrze iskrowym.

55) Co sprawia, że Apache Spark jest dobry w obciążeniach o niskich opóźnieniach, takich jak przetwarzanie grafów i uczenie maszynowe?

Apache Spark przechowuje dane w pamięci dla szybszego budowania i szkolenia modeli. Algorytmy uczenia maszynowego wymagają wielu iteracji w celu wygenerowania optymalnego modelu i podobnie algorytmy grafowe przemierzają wszystkie węzły i krawędzie.Te obciążenia o niskim opóźnieniu, które wymagają wielu iteracji, mogą prowadzić do zwiększenia wydajności. Mniejszy dostęp do dysku i kontrolowany ruch sieciowy robią ogromną różnicę, gdy jest dużo danych do przetworzenia.

56) Czy konieczne jest uruchomienie Hadoop, aby uruchomić jakąkolwiek aplikację Apache Spark?

Uruchomienie hadoop nie jest obowiązkowe, aby uruchomić jakąkolwiek aplikację spark. Ponieważ w Apache Spark nie ma oddzielnego magazynu, używa on Hadoop HDFS, ale nie jest to obowiązkowe. Dane mogą być przechowywane w lokalnym systemie plików, mogą być ładowane z lokalnego systemu plików i przetwarzane.

57) Jaki jest domyślny poziom równoległości w Apache Spark?

Jeśli użytkownik nie określi wyraźnie, wtedy liczba partycji jest uważana za domyślny poziom równoległości w Apache Spark.

58) Wyjaśnij o wspólnym przepływie pracy programu Spark

  • Pierwszy krok w programie Spark obejmuje tworzenie wejściowych RDD z danych zewnętrznych.
  • Użyj różnych transformacji RDD takich jak filter() aby stworzyć nowe przekształcone RDD w oparciu o logikę biznesową.
  • persist() wszelkie pośrednie RDD, które mogą być ponownie użyte w przyszłości.
  • Uruchom różne akcje RDD() takie jak first(), count() aby rozpocząć równoległe obliczenia, które następnie zostaną zoptymalizowane i wykonane przez Sparka.

59) W danym programie spark, jak zidentyfikujesz czy dana operacja jest Transformacją czy Akcją ?

Można zidentyfikować operację na podstawie typu zwrotu –

i) Operacja jest akcją, jeśli typ zwrotu jest inny niż RDD.

ii) Operacja jest transformacją, jeśli typ zwrotu jest taki sam jak RDD.

60) Jaki według Ciebie jest częsty błąd popełniany przez programistów apache spark podczas używania iskry ?

  • Utrzymywanie wymaganego rozmiaru bloków tasowania.
  • Deweloperzy iskry często popełniają błędy przy zarządzaniu skierowanymi grafami acyklicznymi (DAG’s.)

61) Załóżmy, że istnieje RDD o nazwie ProjectPrordd, który zawiera ogromną listę liczb. Następujący kod iskry został napisany w celu obliczenia średniej –

def ProjectProAvg(x, y):
return (x+y)/2.0;
avg = ProjectPrordd.reduce(ProjectProAvg);

Co jest nie tak w powyższym kodzie i jak go poprawisz ?

Funkcja średniej nie jest ani komutatywna ani asocjatywna. Najlepszym sposobem na obliczenie średniej jest najpierw zsumowanie jej, a następnie podzielenie przez count, jak pokazano poniżej –

def sum(x, y):
return x+y;
total =ProjectPrordd.reduce(sum);
avg = total / ProjectPrordd.count();

Jednakże powyższy kod może prowadzić do przepełnienia, jeśli suma stanie się duża. Tak więc, najlepszym sposobem na obliczenie średniej jest podzielenie każdej liczby przez sumę, a następnie zsumowanie jak pokazano poniżej –

cnt = ProjectPrordd.count();
def divideByCnt(x):
return x/cnt;
myrdd1 = ProjectPrordd.map(divideByCnt);
avg = ProjectPrordd.reduce(sum);

Q. Powiedzmy, że mam ogromną listę liczb w pliku w HDFS. Każda linia ma jeden numer.I chcę com

Spark SQL Interview Questions

1) Wyjaśnij różnicę między Spark SQL i Hive.

  • Spark SQL jest szybszy niż Hive.
  • Każde zapytanie Hive może być łatwo wykonane w Spark SQL, ale odwrotnie nie jest prawdą.
  • Spark SQL jest biblioteką, podczas gdy Hive jest frameworkiem.
  • Nie jest obowiązkowe tworzenie metastore w Spark SQL, ale jest obowiązkowe tworzenie metastore w Hive.
  • Spark SQL automatycznie wywnioskuje schemat, podczas gdy w Hive schemat musi być jawnie zadeklarowany….

Spark Streaming Interview Questions

1) Wymień kilka źródeł, z których komponent Spark streaming może przetwarzać dane w czasie rzeczywistym.

Apache Flume, Apache Kafka, Amazon Kinesis

2) Wymień kilka firm, które już używają Spark Streaming.

Uber, Netflix, Pinterest.

3) Jaka jest dolna warstwa abstrakcji w API Spark Streaming ?

DStream.

4) Co rozumiesz przez odbiorniki w Spark Streaming ?

Odbiorniki są specjalnymi jednostkami w Spark Streaming, które konsumują dane z różnych źródeł danych i przenoszą je do Apache Spark. Odbiorniki są zwykle tworzone przez konteksty strumieniowe jako długo działające zadania na różnych executorach i zaplanowane tak, aby działały w sposób rotacyjny, przy czym każdy odbiornik zajmuje jeden rdzeń.

Zapraszamy społeczność big data do dzielenia się najczęściej zadawanymi pytaniami Apache Spark Interview i odpowiedziami, w komentarzach poniżej – aby ułatwić rozmowy kwalifikacyjne big data dla wszystkich przyszłych profesjonalistów analitycznych.

5) Jak obliczysz liczbę executorów wymaganych do przetwarzania w czasie rzeczywistym przy użyciu Apache Spark? Jakie czynniki należy wziąć pod uwagę przy podejmowaniu decyzji o liczbie węzłów do przetwarzania w czasie rzeczywistym?

Liczba węzłów może być określona przez benchmarking sprzętu i rozważenie wielu czynników, takich jak optymalna przepustowość (prędkość sieci), użycie pamięci, używane ramy wykonawcze (YARN, Standalone lub Mesos) i rozważenie innych zadań, które są uruchamiane w tych ramach wykonawczych wraz z iskrą.

6) Jaka jest różnica między Spark Transform w DStream i mapą?

Funkcja transform w spark streaming pozwala programistom używać transformacji Apache Spark na bazowych RDD dla strumienia. funkcja map w hadoop jest używana do transformacji element do elementu i może być zaimplementowana przy użyciu transform.Idealnie , map działa na elementach Dstream, a transform pozwala programistom pracować z RDD w DStream. map jest transformacją elementarną, podczas gdy transform jest transformacją RDD.

Check Out Top Scala Interview Questions for Spark Developers.

Dodaj komentarz