Top 50 Spark Interview Fragen und Antworten für 2021

Last Updated: 25 Jan 2021

Apache Spark Interview Fragen und Antworten 2017

Die Fragen, die bei einem Bewerbungsgespräch für einen Big-Data-Entwickler- oder Apache Spark-Entwickler-Job gestellt werden, können in eine der folgenden Kategorien fallen, basierend auf den Spark-Ökosystemkomponenten.

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

Außerdem,

  1. Spark Streaming-Projekte
  2. Spark MLib-Projekte
  3. Apache Spark-Projekte
  4. PySpark-Projekte

Mit der steigenden Nachfrage der Industrie, um Big Data schneller zu verarbeiten, gewinnt Apache Spark bei der Einführung in Unternehmen enorm an Fahrt. Hadoop MapReduce hat die Notwendigkeit, Big Data schnell zu verarbeiten, gut unterstützt, aber es gab immer einen Bedarf unter den Entwicklern, flexiblere Tools zu erlernen, um mit dem überragenden Markt der mittelgroßen Big Data-Sets Schritt zu halten, für die Echtzeit-Datenverarbeitung innerhalb von Sekunden.

Um die Dynamik für eine schnellere Big Data-Verarbeitung zu unterstützen, gibt es eine steigende Nachfrage nach Apache Spark-Entwicklern, die ihr Fachwissen bei der Implementierung von Best Practices für Spark validieren können – um komplexe Big Data-Lösungen aufzubauen. In Zusammenarbeit mit Experten aus der Big-Data-Branche haben wir eine Liste der 50 besten Apache Spark-Interview-Fragen und -Antworten zusammengestellt, die Studenten/Berufstätigen dabei helfen werden, ein Big-Data-Entwickler-Interview zu bestehen und das Talentangebot für Spark-Entwickler in verschiedenen Industriesegmenten zu überbrücken.

Klicken Sie hier, um eine Liste von 50+ gelösten, durchgängigen Big Data- und Machine Learning-Projektlösungen (wiederverwendbarer Code + Videos)

Unternehmen wie Amazon, Shopify, Alibaba und eBay setzen Apache Spark für ihre Big Data-Implementierungen ein – die Nachfrage nach Spark-Entwicklern wird voraussichtlich exponentiell steigen. Google Trends bestätigt ein „Hockey-Stick-ähnliches Wachstum“ bei der Einführung von Spark in Unternehmen und bei der Bekanntheit von Spark bei Organisationen in verschiedenen Branchen. Spark wird immer beliebter, da es Event-Streaming und die Verarbeitung großer Datenmengen schneller als Hadoop MapReduce verarbeiten kann. 2017 ist die beste Zeit, um Ihre Apache Spark-Fähigkeiten zu verbessern und eine fruchtbare Karriere als Datenanalytiker, Datenwissenschaftler oder Big-Data-Entwickler zu verfolgen.

Diese Apache Spark-Projekte werden Ihnen helfen, Fähigkeiten zu entwickeln, die Sie für Spark-Entwickler-Jobs qualifizieren.

Top 50 Apache Spark Interview Fragen und Antworten

Vorbereitung ist sehr wichtig, um die Nervosität bei einem Big Data Vorstellungsgespräch zu reduzieren. Unabhängig von den Big-Data-Fachkenntnissen und -Fähigkeiten, die man besitzt, fürchtet sich jeder Bewerber vor dem persönlichen Big-Data-Vorstellungsgespräch. Obwohl es keine Möglichkeit gibt, genau vorherzusagen, welche Fragen in einem Big-Data- oder Spark-Entwickler-Vorstellungsgespräch gestellt werden, können diese Apache Spark-Vorstellungsfragen und -Antworten Ihnen helfen, sich besser auf diese Gespräche vorzubereiten.

Spark Interview Fragen und Antworten

1) Vergleich Spark vs Hadoop MapReduce

Spark vs Hadoop

Kriterien

Hadoop MapReduce

Apache Spark

Speicher

Nutzt den Speicher des Hadoop-Clusters nicht maximal aus. Lässt Daten im Speicher mit Hilfe von RDDs speichern.

Festplattennutzung

MapReduce ist festplattenorientiert. Spark speichert Daten im Speicher und sorgt für geringe Latenz.

Verarbeitung

Nur Stapelverarbeitung wird unterstützt Unterstützt Echtzeitverarbeitung durch Spark Streaming.

Installation

Ist an Hadoop gebunden. Ist nicht an Hadoop gebunden.

Vergleich Spark vs Hadoop

Einfachheit, Flexibilität und Leistung sind die Hauptvorteile der Verwendung von Spark gegenüber Hadoop.

  • Spark ist bei der Big-Data-Verarbeitung 100-mal schneller als Hadoop, da es die Daten im Speicher speichert, indem es sie in Resilient Distributed Databases (RDD) ablegt.
  • Spark ist einfacher zu programmieren, da es über einen interaktiven Modus verfügt.
  • Es bietet eine vollständige Wiederherstellung mit Hilfe des Lineage-Graphen, wenn etwas schief geht.

Referenz Spark vs Hadoop
Klicken Sie hier, um 52+ gelöste, wiederverwendbare Projektlösungen in Big Data – Spark zu sehen

2) Was ist Shark?

Die meisten Datennutzer kennen nur SQL und sind nicht gut im Programmieren. Shark ist ein Tool, das für Leute entwickelt wurde, die einen Datenbank-Hintergrund haben – für den Zugriff auf Scala MLib-Funktionen durch eine Hive-ähnliche SQL-Schnittstelle. Shark hilft Datennutzern, Hive auf Spark auszuführen – und bietet Kompatibilität mit dem Hive-Metaspeicher, Abfragen und Daten.

3) Nennen Sie einige Anwendungsfälle, in denen Spark die Verarbeitung von Hadoop übertrifft.

  1. Sensordatenverarbeitung – Das „In-Memory-Computing“ von Apache Spark funktioniert hier am besten, da die Daten aus verschiedenen Quellen abgerufen und kombiniert werden.
  2. Spark wird gegenüber Hadoop für die Echtzeitabfrage von Daten bevorzugt
  3. Stream Processing – Für die Verarbeitung von Protokollen und die Erkennung von Betrug in Live-Streams für Warnmeldungen ist Apache Spark die beste Lösung.

4) Was ist ein Sparse Vector?

Ein Sparse Vector hat zwei parallele Arrays – eines für Indizes und das andere für Werte. Diese Vektoren werden zum Speichern von Nicht-Null-Einträgen verwendet, um Platz zu sparen.

5) Was ist ein RDD?

RDDs (Resilient Distributed Datasets) sind eine grundlegende Abstraktion in Apache Spark, die die in das System eingehenden Daten im Objektformat darstellen. RDDs werden für fehlertolerante In-Memory-Berechnungen auf großen Clustern verwendet. RDDs sind schreibgeschützte, portionierte Datensätze, die –

  • unveränderbar sind – RDDs können nicht verändert werden.
  • resilient – Wenn ein Knoten, der die Partition hält, ausfällt, übernimmt der andere Knoten die Daten.

Build a Big Data Project Portfolio by working on real-time apache spark projects

6) Explain about transformations and actions in the context of RDDs.

Transformations are functions executed on demand, to produce a new RDD. Auf alle Transformationen folgen Aktionen. Einige Beispiele für Transformationen sind map, filter und reduceByKey.

Actions sind die Ergebnisse von RDD-Berechnungen oder Transformationen. Nachdem eine Aktion durchgeführt wurde, werden die Daten aus dem RDD zurück auf den lokalen Rechner übertragen. Einige Beispiele für Aktionen sind „reduce“, „collect“, „first“ und „take“.

7) Welche Sprachen werden von Apache Spark für die Entwicklung von Big Data-Anwendungen unterstützt?

Scala, Java, Python, R und Clojure

8) Kann man mit Spark auf Daten zugreifen, die in Cassandra-Datenbanken gespeichert sind, und diese analysieren?

Ja, das ist möglich, wenn man den Spark Cassandra Connector verwendet.

9) Ist es möglich, Apache Spark auf Apache Mesos auszuführen?

Ja, Apache Spark kann auf den von Mesos verwalteten Hardware-Clustern ausgeführt werden.

10) Erläutern Sie die verschiedenen Cluster-Manager in Apache Spark

Die 3 verschiedenen Cluster-Manager, die in Apache Spark unterstützt werden, sind:

  • YARN
  • Apache Mesos – Verfügt über umfangreiche Ressourcenplanungsfunktionen und ist gut geeignet, um Spark zusammen mit anderen Anwendungen auszuführen. Es ist vorteilhaft, wenn mehrere Benutzer interaktive Shells ausführen, da es die CPU-Zuweisung zwischen den Befehlen reduziert.
  • Standalone-Bereitstellungen – Gut geeignet für neue Bereitstellungen, die nur ausgeführt werden und einfach einzurichten sind.

11) Wie kann Spark mit Apache Mesos verbunden werden?

Um Spark mit Mesos zu verbinden-

  • Konfigurieren Sie das Spark-Treiberprogramm, um eine Verbindung mit Mesos herzustellen. Das Spark-Binärpaket sollte sich an einem Ort befinden, auf den Mesos zugreifen kann. (oder)
  • Installieren Sie Apache Spark an demselben Ort wie Apache Mesos und konfigurieren Sie die Eigenschaft „spark.mesos.executor.home“ so, dass sie auf den Ort verweist, an dem es installiert ist.

Big-Data-Hadoop- und Spark-Projekte

12) Wie können Sie Datenübertragungen bei der Arbeit mit Spark minimieren?

Das Minimieren von Datenübertragungen und das Vermeiden von Shuffling hilft beim Schreiben von Spark-Programmen, die schnell und zuverlässig laufen. Es gibt verschiedene Möglichkeiten, die Datenübertragungen bei der Arbeit mit Apache Spark zu minimieren:

  1. Verwendung von Broadcast-Variablen- Broadcast-Variablen verbessern die Effizienz von Joins zwischen kleinen und großen RDDs.
  2. Verwendung von Akkumulatoren – Akkumulatoren helfen dabei, die Werte von Variablen während der Ausführung parallel zu aktualisieren.
  3. Der häufigste Weg ist die Vermeidung von Operationen ByKey, repartition oder anderen Operationen, die Shuffles auslösen.

13) Warum braucht man Broadcast-Variablen bei der Arbeit mit Apache Spark?

Das sind Read-Only-Variablen, die auf jedem Rechner im Speicher-Cache vorhanden sind. Bei der Arbeit mit Spark entfällt durch die Verwendung von Broadcast-Variablen die Notwendigkeit, Kopien einer Variablen für jede Aufgabe zu versenden, sodass die Daten schneller verarbeitet werden können. Broadcast-Variablen helfen bei der Speicherung einer Nachschlagetabelle im Speicher, was die Abrufeffizienz im Vergleich zu einer RDD-Nachschlagetabelle erhöht.

14) Ist es möglich, Spark und Mesos zusammen mit Hadoop auszuführen?

Ja, es ist möglich, Spark und Mesos zusammen mit Hadoop auszuführen, indem jeder von ihnen als separater Dienst auf den Maschinen gestartet wird. Mesos fungiert als einheitlicher Scheduler, der Aufgaben entweder Spark oder Hadoop zuweist.

15) Was ist ein Lineage-Graph?

Die RDDs in Spark hängen von einem oder mehreren anderen RDDs ab. Die Darstellung der Abhängigkeiten zwischen RDDs wird als Lineage-Graph bezeichnet. Lineage-Graph-Informationen werden verwendet, um jedes RDD bei Bedarf zu berechnen, so dass die verlorenen Daten mithilfe der Lineage-Graph-Informationen wiederhergestellt werden können, wenn ein Teil des persistenten RDDs verloren geht.

16) Wie können Sie automatische Bereinigungen in Spark auslösen, um angesammelte Metadaten zu behandeln?

Sie können die Bereinigungen auslösen, indem Sie den Parameter „spark.cleaner.ttl‘ auslösen oder indem Sie die lang laufenden Jobs in verschiedene Batches aufteilen und die Zwischenergebnisse auf die Festplatte schreiben.

17) Erklären Sie die wichtigsten Bibliotheken, die das Spark-Ökosystem bilden

  • Spark MLib- Bibliothek für maschinelles Lernen in Spark für häufig verwendete Lernalgorithmen wie Clustering, Regression, Klassifizierung usw.
  • Spark Streaming – Diese Bibliothek wird verwendet, um Echtzeit-Streaming-Daten zu verarbeiten.
  • Spark GraphX – Spark-API für parallele Graphberechnungen mit grundlegenden Operatoren wie joinVertices, subgraph, aggregateMessages usw.
  • Spark SQL – Hilft bei der Ausführung von SQL-ähnlichen Abfragen auf Spark-Daten mit Standard-Visualisierungs- oder BI-Tools.

18) Welche Vorteile bietet die Verwendung von Spark mit Apache Mesos?

Es ermöglicht eine skalierbare Partitionierung zwischen verschiedenen Spark-Instanzen und eine dynamische Partitionierung zwischen Spark und anderen Big-Data-Frameworks.

19) Welche Bedeutung hat die Sliding-Window-Operation?

Sliding Window steuert die Übertragung von Datenpaketen zwischen verschiedenen Computernetzen. Die Spark-Streaming-Bibliothek bietet fenstergestützte Berechnungen, bei denen die Transformationen auf RDDs über ein gleitendes Fenster von Daten angewendet werden. Immer wenn das Fenster gleitet, werden die RDDs, die in das jeweilige Fenster fallen, kombiniert und bearbeitet, um neue RDDs des gefensterten DStreams zu erzeugen.

20) Was ist ein DStream?

Discretized Stream ist eine Folge von Resilient Distributed Databases, die einen Datenstrom darstellen. DStreams können aus verschiedenen Quellen wie Apache Kafka, HDFS und Apache Flume erstellt werden. DStreams haben zwei Operationen –

  • Transformationen, die einen neuen DStream erzeugen.
  • Ausgabeoperationen, die Daten in ein externes System schreiben.

21) Wenn Spark-Anwendungen ausgeführt werden, ist es dann notwendig, Spark auf allen Knoten des YARN-Clusters zu installieren?

Spark muss nicht installiert werden, wenn ein Auftrag unter YARN oder Mesos ausgeführt wird, da Spark auf YARN- oder Mesos-Clustern ausgeführt werden kann, ohne den Cluster zu verändern.

22) Was ist das Catalyst-Framework?

Das Catalyst-Framework ist ein neues Optimierungs-Framework in Spark SQL. Es ermöglicht Spark, SQL-Abfragen automatisch umzuwandeln, indem es neue Optimierungen hinzufügt, um ein schnelleres Verarbeitungssystem aufzubauen.

23) Nennen Sie einige Unternehmen, die Apache Spark in der Produktion verwenden.

Pinterest, Conviva, Shopify, Open Table

24) Welche Spark-Bibliothek ermöglicht eine zuverlässige Dateifreigabe mit Speichergeschwindigkeit über verschiedene Cluster-Frameworks?

Tachyon

Arbeiten Sie an interessanten Data Science-Projekten mit Spark, um ein beeindruckendes Projektportfolio aufzubauen!

25) Warum wird BlinkDB verwendet?

BlinkDB ist eine Abfrage-Engine zur Ausführung interaktiver SQL-Abfragen auf riesigen Datenmengen und stellt Abfrageergebnisse mit aussagekräftigen Fehlerbalken dar. BlinkDB hilft den Benutzern, die „Abfragegenauigkeit“ mit der Antwortzeit in Einklang zu bringen.

26) Wie können Sie Hadoop und Spark in Bezug auf die Benutzerfreundlichkeit vergleichen?

Hadoop MapReduce erfordert die Programmierung in Java, was schwierig ist, obwohl Pig und Hive es erheblich einfacher machen. Das Erlernen der Pig- und Hive-Syntax erfordert Zeit. Spark verfügt über interaktive APIs für verschiedene Sprachen wie Java, Python oder Scala und umfasst auch Shark, d. h. Spark SQL für SQL-Liebhaber, wodurch es vergleichsweise einfacher zu verwenden ist als Hadoop.

27) Welche Fehler machen Entwickler häufig, wenn sie Spark-Anwendungen ausführen?

Entwickler machen oft den Fehler-

  • Den Webservice mehrmals auszuführen, indem sie mehrere Cluster verwenden.
  • Alles auf dem lokalen Knoten ausführen, anstatt es zu verteilen.

Entwickler müssen dabei vorsichtig sein, da Spark Speicher für die Verarbeitung verwendet.

28) Was ist der Vorteil einer Parquet-Datei?

Parquet-Datei ist eine Datei im Spaltenformat, die dabei hilft, –

  • E/A-Operationen einzuschränken
  • weniger Speicherplatz zu verbrauchen
  • Nur benötigte Spalten abzurufen.

29) Welche verschiedenen Datenquellen sind in SparkSQL verfügbar?

  • Parquet-Datei
  • JSON-Datensätze
  • Hive-Tabellen

30) Wie verwendet Spark Hadoop?

Spark hat seine eigene Cluster-Management-Berechnung und verwendet Hadoop hauptsächlich für die Speicherung.

Für die vollständige Liste der gelösten Big-Data-Projekte – KLICKEN SIE HIER

31) Was sind die Hauptmerkmale von Apache Spark, die Sie mögen?

  • Spark bietet fortschrittliche Analyseoptionen wie Graphenalgorithmen, maschinelles Lernen, Streaming-Daten usw.
  • Es verfügt über integrierte APIs in mehreren Sprachen wie Java, Scala, Python und R
  • Es bietet eine gute Leistungssteigerung, da es hilft, eine Anwendung im Hadoop-Cluster zehnmal schneller auf der Festplatte und 100-mal schneller im Speicher auszuführen.

32) Was verstehen Sie unter Pair RDD?

Spezielle Operationen können auf RDDs in Spark unter Verwendung von Schlüssel/Wert-Paaren durchgeführt werden und solche RDDs werden als Pair RDDs bezeichnet. Pair RDDs ermöglichen den parallelen Zugriff auf jeden Schlüssel. Sie verfügen über eine reduceByKey ()-Methode, die Daten auf der Grundlage jedes Schlüssels sammelt, und eine join ()-Methode, die verschiedene RDDs auf der Grundlage der Elemente mit demselben Schlüssel miteinander kombiniert.

33) Welche Methode würden Sie für ein Projekt wählen – Hadoop MapReduce oder Apache Spark?

Die Antwort auf diese Frage hängt vom gegebenen Projektszenario ab – da bekannt ist, dass Spark den Speicher anstelle von Netzwerk- und Festplatten-E/A nutzt. Allerdings benötigt Spark eine große Menge an RAM und einen dedizierten Rechner, um effektive Ergebnisse zu erzielen. Die Entscheidung für Hadoop oder Spark hängt also dynamisch von den Anforderungen des Projekts und dem Budget der Organisation ab.

34) Erläutern Sie die verschiedenen Arten von Transformationen auf DStreams?

  • Zustandslose Transformationen – Die Verarbeitung des Batches hängt nicht von der Ausgabe des vorherigen Batches ab. Beispiele – map (), reduceByKey (), filter ().
  • Zustandsabhängige Transformationen- Die Verarbeitung des Stapels hängt von den Zwischenergebnissen des vorherigen Stapels ab. Beispiele – Transformationen, die von gleitenden Fenstern abhängen.

35) Erklären Sie die beliebten Anwendungsfälle von Apache Spark

Apache Spark wird hauptsächlich für

  • Iteratives maschinelles Lernen verwendet.
  • Interaktive Datenanalyse und -verarbeitung.
  • Stream-Verarbeitung
  • Sensordatenverarbeitung

36) Ist Apache Spark für Reinforcement Learning geeignet?

Nein. Apache Spark eignet sich nur für einfache Algorithmen des maschinellen Lernens wie Clustering, Regression und Klassifizierung.

37) Was ist Spark Core?

Es verfügt über alle grundlegenden Funktionen von Spark wie Speicherverwaltung, Fehlerbehebung, Interaktion mit Speichersystemen, Aufgabenplanung usw.

38) Wie kann man die Elemente mit einem Schlüssel entfernen, die in einem anderen RDD vorhanden sind?

Verwenden Sie die Funktion subtractByKey ()

39) Was ist der Unterschied zwischen persist() und cache()

persist () ermöglicht dem Benutzer, die Speicherebene anzugeben, während cache () die Standardspeicherebene verwendet.

40) Was sind die verschiedenen Ebenen der Persistenz in Apache Spark?

Apache Spark persistiert automatisch die Zwischendaten aus verschiedenen Shuffle-Operationen, es wird jedoch oft vorgeschlagen, dass Benutzer die Methode persist () für das RDD aufrufen, falls sie es wiederverwenden möchten. Spark verfügt über verschiedene Persistenzstufen, um die RDDs auf der Festplatte oder im Speicher oder als eine Kombination aus beidem mit verschiedenen Replikationsstufen zu speichern.

Die verschiedenen Speicher-/Persistenzstufen in Spark sind –

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

41) Wie behandelt Spark die Überwachung und Protokollierung im Standalone-Modus?

Spark verfügt über eine webbasierte Benutzeroberfläche zur Überwachung des Clusters im Standalone-Modus, die die Cluster- und Jobstatistiken anzeigt. Die Protokollausgabe für jeden Job wird in das Arbeitsverzeichnis der Slave-Knoten geschrieben.

42) Bietet Apache Spark Check-Pointing?

Lineage-Diagramme sind immer nützlich, um RDDs nach einem Ausfall wiederherzustellen, aber dies ist im Allgemeinen zeitaufwendig, wenn die RDDs lange Lineage-Ketten haben. Spark verfügt über eine API für Check-Pointing, d. h. ein REPLICATE-Flag zum Persistieren. Die Entscheidung, welche Daten geprüft werden sollen, wird jedoch vom Benutzer getroffen. Checkpoints sind nützlich, wenn die Lineage-Graphen lang sind und weitreichende Abhängigkeiten aufweisen.

43) Wie können Sie Spark-Jobs innerhalb von Hadoop MapReduce starten?

Mit SIMR (Spark in MapReduce) können Benutzer jeden Spark-Job innerhalb von MapReduce ausführen, ohne Administratorrechte zu benötigen.

44) Wie verwendet Spark Akka?

Spark verwendet Akka im Wesentlichen für das Scheduling. Alle Worker beantragen eine Aufgabe beim Master, nachdem sie sich registriert haben. Der Master weist die Aufgabe einfach zu. Hier verwendet Spark Akka für den Nachrichtenaustausch zwischen den Workern und den Mastern.

45) Wie kann man in Apache Spark Hochverfügbarkeit erreichen?

  • Implementierung der Wiederherstellung eines einzelnen Knotens mit einem lokalen Dateisystem
  • Verwendung von StandBy Masters mit Apache ZooKeeper.

46) Hadoop verwendet Replikation, um Fehlertoleranz zu erreichen. Wie wird dies in Apache Spark erreicht?

Das Datenspeichermodell in Apache Spark basiert auf RDDs. RDDs helfen, Fehlertoleranz durch Abstammung zu erreichen. RDDs haben immer die Information, wie sie aus anderen Datensätzen aufgebaut sind. Wenn eine Partition eines RDD aufgrund eines Fehlers verloren geht, hilft Lineage dabei, nur diese bestimmte verlorene Partition aufzubauen.

47) Erklären Sie die Kernkomponenten einer verteilten Spark-Anwendung.

  • Treiber – Der Prozess, der die main ()-Methode des Programms ausführt, um RDDs zu erstellen und Transformationen und Aktionen auf ihnen durchzuführen.
  • Executor – Die Worker-Prozesse, die die einzelnen Aufgaben eines Spark-Jobs ausführen.
  • Cluster-Manager – Eine pluggable Komponente in Spark, um Executors und Treiber zu starten. Der Cluster-Manager ermöglicht es Spark, auf anderen externen Managern wie Apache Mesos oder YARN zu laufen.

48) Was verstehen Sie unter Lazy Evaluation?

Spark ist intellektuell in der Art und Weise, wie es mit Daten arbeitet. Wenn Sie Spark sagen, dass es mit einem bestimmten Datensatz arbeiten soll, befolgt es die Anweisungen und notiert sie, damit es sie nicht vergisst – aber es tut nichts, wenn es nicht nach dem Endergebnis gefragt wird. Wenn eine Transformation wie map () auf einem RDD aufgerufen wird, wird die Operation nicht sofort ausgeführt. Transformationen in Spark werden erst ausgewertet, wenn Sie eine Aktion durchführen. Dies trägt zur Optimierung des gesamten Datenverarbeitungs-Workflows bei.

49) Definieren Sie einen Arbeitsknoten.

Ein Knoten, der den Spark-Anwendungscode in einem Cluster ausführen kann, kann als Arbeitsknoten bezeichnet werden. Ein Worker-Knoten kann mehr als einen Worker haben, der durch Setzen der Eigenschaft SPARK_ WORKER_INSTANCES in der Datei spark-env.sh konfiguriert wird. Es wird nur ein Worker gestartet, wenn die Eigenschaft SPARK_ WORKER_INSTANCES nicht definiert ist.

50) Was verstehen Sie unter SchemaRDD?

Ein RDD, das aus Zeilenobjekten (Wrapper um einfache String- oder Integer-Arrays) mit Schemainformationen über den Datentyp in jeder Spalte besteht.

51) Welche Nachteile hat die Verwendung von Apache Spark gegenüber Hadoop MapReduce?

Apache Spark ist für rechenintensive Aufgaben nicht gut skalierbar und verbraucht eine große Anzahl von Systemressourcen. Die In-Memory-Fähigkeit von Apache Spark stellt manchmal ein großes Hindernis für die kosteneffiziente Verarbeitung von Big Data dar. Außerdem verfügt Spark über ein eigenes Dateiverwaltungssystem und muss daher in andere Cloud-basierte Datenplattformen oder Apache Hadoop integriert werden.

52) Ist es notwendig, Spark auf allen Knoten eines YARN-Clusters zu installieren, wenn Apache Spark auf YARN läuft?

Nein, das ist nicht notwendig, da Apache Spark auf YARN läuft.

53) Was verstehen Sie unter Executor-Speicher in einer Spark-Anwendung?

Jede Spark-Anwendung hat dieselbe feste Heap-Größe und feste Anzahl von Kernen für einen Spark-Executor. Die Heap-Größe wird als Spark-Executor-Speicher bezeichnet, der mit der Eigenschaft spark.executor.memory des Flags -executor-memory gesteuert wird. Jede Spark-Anwendung hat einen Executor auf jedem Worker-Knoten. Der Executor-Speicher ist im Grunde ein Maß dafür, wie viel Speicher des Worker-Knotens von der Anwendung genutzt wird.

54) Was macht die Spark-Engine?

Die Spark-Engine plant, verteilt und überwacht die Datenanwendung über den Spark-Cluster.

55) Was macht Apache Spark so gut für Arbeitslasten mit niedriger Latenz, wie z. B. Graphenverarbeitung und maschinelles Lernen?

Apache Spark speichert Daten im Speicher für eine schnellere Modellerstellung und -schulung. Algorithmen für maschinelles Lernen erfordern mehrere Iterationen, um ein optimales Modell zu erstellen, und ähnlich durchlaufen Graphenalgorithmen alle Knoten und Kanten. Diese Arbeitslasten mit geringer Latenz, die mehrere Iterationen erfordern, können zu einer Leistungssteigerung führen. Weniger Festplattenzugriffe und kontrollierter Netzwerkverkehr machen einen großen Unterschied, wenn viele Daten verarbeitet werden müssen.

56) Ist es notwendig, Hadoop zu starten, um eine Apache Spark-Anwendung auszuführen?

Hadoop zu starten ist nicht zwingend erforderlich, um eine Spark-Anwendung auszuführen. Da es in Apache Spark keinen separaten Speicher gibt, verwendet es Hadoop HDFS, was aber nicht zwingend erforderlich ist. Die Daten können im lokalen Dateisystem gespeichert, aus dem lokalen Dateisystem geladen und verarbeitet werden.

57) Was ist der Standardgrad der Parallelität in Apache Spark?

Wenn der Benutzer nicht explizit angibt, wird die Anzahl der Partitionen als Standardgrad der Parallelität in Apache Spark betrachtet.

58) Erläutern Sie den allgemeinen Arbeitsablauf eines Spark-Programms

  • Der erste Schritt in einem Spark-Programm beinhaltet die Erstellung von Eingabe-RDDs aus externen Daten.
  • Verwenden Sie verschiedene RDD-Transformationen wie filter(), um neue transformierte RDDs auf der Grundlage der Geschäftslogik zu erstellen.
  • Persistieren() Sie alle Zwischen-RDDs, die in Zukunft wiederverwendet werden müssen.
  • Starten Sie verschiedene RDD-Aktionen() wie first(), count(), um die parallele Berechnung zu beginnen, die dann von Spark optimiert und ausgeführt wird.

59) Wie erkennt man in einem gegebenen Spark-Programm, ob eine gegebene Operation eine Transformation oder eine Aktion ist?

Man kann die Operation anhand des Rückgabetyps identifizieren –

i) Die Operation ist eine Aktion, wenn der Rückgabetyp ein anderer als RDD ist.

ii) Die Operation ist eine Transformation, wenn der Rückgabetyp derselbe wie der RDD ist.

60) Was ist Ihrer Meinung nach ein häufiger Fehler, den Apache Spark-Entwickler bei der Verwendung von Spark machen?

  • Die erforderliche Größe von Shuffle-Blöcken einhalten.
  • Spark-Entwickler machen oft Fehler bei der Verwaltung von gerichteten azyklischen Graphen (DAG’s.)

61) Angenommen, es gibt ein RDD namens ProjectPrordd, das eine riesige Liste von Zahlen enthält. Der folgende Spark-Code wurde geschrieben, um den Durchschnitt zu berechnen –

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

Was ist falsch am obigen Code und wie werden Sie ihn korrigieren?

Die Durchschnittsfunktion ist weder kommutativ noch assoziativ. Der beste Weg, den Durchschnitt zu berechnen, ist, ihn zuerst zu summieren und dann durch die Anzahl zu dividieren, wie unten gezeigt –

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

Der obige Code könnte jedoch zu einem Überlauf führen, wenn die Summe groß wird. Der beste Weg, den Durchschnitt zu berechnen, ist also, jede Zahl durch die Anzahl zu teilen und dann zu addieren, wie unten gezeigt –

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

Q. Angenommen, ich habe eine große Liste von Zahlen in einer Datei im HDFS. Jede Zeile hat eine Zahl, und ich möchte die Zahlen in Spark SQL reduzieren.

Spark SQL Interview Fragen

1) Erklären Sie den Unterschied zwischen Spark SQL und Hive.

  • Spark SQL ist schneller als Hive.
  • Jede Hive-Abfrage kann leicht in Spark SQL ausgeführt werden, aber umgekehrt gilt das nicht.
  • Spark SQL ist eine Bibliothek, während Hive ein Framework ist.
  • Es ist nicht zwingend erforderlich, einen Metaspeicher in Spark SQL zu erstellen, aber es ist zwingend erforderlich, einen Hive-Metaspeicher zu erstellen.
  • Spark SQL leitet das Schema automatisch her, während das Schema in Hive explizit deklariert werden muss.

Spark Streaming Interview Fragen

1) Nennen Sie einige Quellen, aus denen die Spark Streaming-Komponente Echtzeitdaten verarbeiten kann.

Apache Flume, Apache Kafka, Amazon Kinesis

2) Nennen Sie einige Unternehmen, die Spark Streaming bereits verwenden.

Uber, Netflix, Pinterest.

3) Was ist die unterste Abstraktionsschicht in der Spark Streaming-API?

DStream.

4) Was verstehen Sie unter Empfängern in Spark Streaming?

Empfänger sind spezielle Entitäten in Spark Streaming, die Daten aus verschiedenen Datenquellen konsumieren und sie an Apache Spark übertragen. Receiver werden in der Regel von Streaming-Kontexten als langlaufende Tasks auf verschiedenen Executors erstellt und so geplant, dass sie nach dem Round-Robin-Prinzip arbeiten, wobei jeder Receiver einen einzelnen Core belegt.

Wir laden die Big-Data-Community ein, die am häufigsten gestellten Apache Spark-Interview-Fragen und -Antworten in den Kommentaren unten zu teilen – um Big-Data-Job-Interviews für alle angehenden Analytiker zu erleichtern.

5) Wie berechnen Sie die Anzahl der Executors, die für die Echtzeitverarbeitung mit Apache Spark erforderlich sind? Welche Faktoren müssen bei der Entscheidung über die Anzahl der Knoten für die Echtzeitverarbeitung berücksichtigt werden?

Die Anzahl der Knoten kann durch Benchmarking der Hardware und unter Berücksichtigung mehrerer Faktoren wie optimaler Durchsatz (Netzwerkgeschwindigkeit), Speichernutzung, die verwendeten Ausführungsframeworks (YARN, Standalone oder Mesos) und unter Berücksichtigung der anderen Jobs, die innerhalb dieser Ausführungsframeworks zusammen mit Spark ausgeführt werden, entschieden werden.

6) Was ist der Unterschied zwischen Spark Transform in DStream und map?

Die Funktion „Transform“ in Spark Streaming ermöglicht es Entwicklern, Apache Spark-Transformationen auf den zugrunde liegenden RDDs für den Stream zu verwenden. Die Funktion „map“ in Hadoop wird für eine Element-zu-Element-Transformation verwendet und kann mit „transform“ implementiert werden. map arbeitet idealerweise mit den Elementen des DStreams und transform ermöglicht es Entwicklern, mit den RDDs des DStreams zu arbeiten. map ist eine elementare Transformation, während transform eine RDD-Transformation ist.

Sehen Sie sich die wichtigsten Scala-Interviewfragen für Spark-Entwickler an.

Schreibe einen Kommentar