Häufig gestellte Fragen zu Serverless for Apache Spark

Auf dieser Seite finden Sie Antworten auf häufig gestellte Fragen zu Serverless for Apache Spark. Google Cloud

Wann sollte ich Serverless für Apache Spark anstelle von Dataproc in Compute Engine verwenden?

  • Serverless for Apache Spark:

    • Unterstützt Spark-Batch-Arbeitslasten und interaktive Sitzungen in PySpark-Kernel-Jupyter-Notebooks.
    • Mit Serverless for Apache Spark wird die Infrastruktur für Ihre Arbeitslast und interaktive Sitzung erstellt und verwaltet.
  • Dataproc in Compute Engine:

    • Unterstützt das Senden verschiedener Arten von Spark-Jobs und Jobs, die auf anderen Open-Source-Komponenten wie Flink, Hadoop, Hive, Pig und Presto basieren.

    • Es wird keine Infrastruktur erstellt und verwaltet. Sie erstellen und verwalten Ihre Dataproc-Cluster.

Was kann ich mit Serverless for Apache Spark tun?

  • Batchjobs ausführen

  • Dataproc JupyterLab-Plug-in für serverlose Batch- und interaktive Notebook-Sitzungen verwenden

  • Streamingjobs mit Spark Streaming-Bibliotheken ausführen Hinweis: Streaming ist kein verwalteter Dienst. Sie müssen daher selbst für Checkpointing und Neustarts sorgen.

  • Modelle mit Spark MLlib trainieren.

  • Verwenden Sie interaktive SQL-Notebooks für die Datenexploration sowie für Diagramm-, Zeitreihen- und räumlich-geografische Analysen.

  • Serverless for Apache Spark-Arbeitslasten mit Cloud Composer, einem verwalteten Apache Airflow-Dienst, orchestrieren

Wie richte ich einen Ausführungsplan für Arbeitslasten ein?

Sie können Arbeitslasten gleichzeitig oder nacheinander ausführen. Ihr Ausführungsplan wirkt sich auf Ihr Google Cloud -Ressourcenkontingent aus. Sie können so viele Arbeitslasten parallel ausführen, wie es Ihr Batch-Ressourcenkontingent zulässt.

Kann ich ein benutzerdefiniertes Image mit Serverless for Apache Spark verwenden?

Kann ich Speicher- und Festplattenressourcen für Serverless for Apache Spark-Arbeitslasten angeben?

Ja. Sie können Premium-Executor- und ‑Treiber-Computing- und ‑Laufwerkstufen sowie die Menge an Treiber- und Executor-Computing- und ‑Laufwerkressourcen angeben, die beim Senden einer Arbeitslast zugewiesen werden sollen (siehe Eigenschaften für die Ressourcenbereitstellung).

Wie kann ich den IP-Adressbereich für mein VPC-Netzwerk für Serverless for Apache Spark angeben?

Serverlose Apache Spark-Arbeitslasten werden in Ihrer Umgebung ausgeführt. Jeder Spark-Treiber und jeder Spark-Executor in einer serverlosen Spark-Arbeitslast belegt eine interne IP-Adresse in Ihrem VPC-Netzwerk für Serverless for Apache Spark. /16 ist ein typischer vom Nutzer angegebener CIDR-Adressbereich für ein VPC-Netzwerk für Serverless for Apache Spark. Sie können den IP-Adressbereich Ihres Netzwerks basierend auf der Anzahl der gleichzeitigen Arbeitslasten begrenzen, die Sie ausführen möchten.

Unterstützt Serverless für Apache Spark den Datenstandort?

Ja. Sie geben die Region an, in der Ihre Arbeitslast verarbeitet wird. Suchen Sie Ihre Eingabe- und Ausgabe-Datasets in der angegebenen Region.

Wie wählt Serverless for Apache Spark eine Zone innerhalb der angegebenen Region für die Ausführung der Arbeitslast aus?

Bei Serverless for Apache Spark wird die Compute Engine-Zone, in der eine Arbeitslast ausgeführt wird, basierend auf Kapazität und Verfügbarkeit ausgewählt. Wenn eine Zone nach dem Start einer Arbeitslast nicht mehr verfügbar ist, schlägt die Arbeitslast fehl und Sie müssen sie noch einmal senden.

Wie werden Rechenressourcen für Serverless for Apache Spark-Arbeitslasten verwendet?

Jede Arbeitslast wird auf eigenen Rechenressourcen ausgeführt. Bei mehreren Batch-Einreichungen werden keine Rechenressourcen gemeinsam genutzt oder wiederverwendet.

Best Practices:

  • Optimieren Sie Ihre Arbeitslast für Jobs mit mittlerer Laufzeit, nicht für Jobs mit kurzer Laufzeit.

  • Daten, auf die von mehreren Arbeitslasten zugegriffen wird, in Cloud Storage speichern.

Wo finde ich Informationen zu Ankündigungen, Funktionen, Fehlerkorrekturen, bekannten Problemen und Einstellungen für Serverless for Apache Spark?

Weitere Informationen finden Sie in den Versionshinweisen zu Serverless für Apache Spark.

Konkurrieren gleichzeitige Arbeitslasten um Ressourcen?

Serverlose Apache Spark-Arbeitslasten konkurrieren nur dann um Ressourcen, wenn Ihr Ressourcenkontingent nicht ausreicht, um alle gleichzeitig ausgeführten Arbeitslasten auszuführen. Andernfalls sind Arbeitslasten vollständig voneinander isoliert.

Wie wird das Kontingent für Serverless for Apache Spark zugewiesen?

Für Serverless for Apache Spark-Batches werden Google Cloud Ressourcen verbraucht. Weitere Informationen finden Sie unter Dataproc Serverless-Kontingente.

Muss ich einen Dataproc Persistent History Server einrichten?

Die Einrichtung eines Persistent History Server (PHS) für die Verwendung mit Serverless für Apache Spark ist optional.Mit dem PHS können Sie Spark-Ereignisse und andere Logs in einem angegebenen Cloud Storage-Bucket bis zum und nach dem standardmäßigen 90-Tage-Aufbewahrungszeitraum (TTL) des Serverless für Apache Spark-Staging- und temporären Bucket ansehen.

Welche Serverless for Apache Spark-Spark-Logs sind verfügbar?

Spark-Executor- und Treiberlogs sind während und nach der Ausführung von Spark-Arbeitslasten in Cloud Logging verfügbar. Außerdem sind Spark-Anwendungen in der Weboberfläche des Persistent History Server (PHS) sichtbar, während die Arbeitslast ausgeführt wird. Wählen Sie dazu in der PHS-UI PHS > Incomplete Applications aus.

Wenn Sie einen persistenten Dataproc-Verlaufsserver einrichten, haben Sie dauerhaften Zugriff auf Spark-Ereignislogs, die in Cloud Storage gespeichert sind. Diese Logs geben Aufschluss über die Ausführung von Spark-Anwendungen, z. B. DAG- und Executor-Ereignisse.

Kann ich die Anzahl der Executors für meine Spark-Arbeitslast festlegen?

Ja. Sie können die Anzahl der Executors für eine Spark-Arbeitslast mit dem Attribut spark.executor.instances festlegen. Die Gesamtzahl der Kerne, die eine Arbeitslast verwenden kann, ist jedoch wichtiger als die Anzahl der Executors, da Spark eine Aufgabe pro Kern ausführt. Wenn eine Arbeitslast beispielsweise vier Executors mit jeweils zwei Kernen hat, werden 4 * 2 = 8 Aufgaben gleichzeitig ausgeführt. Außerdem wird die gleiche Anzahl von Aufgaben für einen Arbeitslast ausgeführt, die zwei Executors mit jeweils vier Kernen hat. Da die Anzahl der Kerne für jeden Arbeitslasttyp gleich ist, wird die gleiche Anzahl von Aufgaben ausgeführt. Mit der Eigenschaft spark.executor.cores können Sie die Anzahl der Kerne pro Executor für Ihre Serverless for Apache Spark-Arbeitslast festlegen.

Welche Spark-Messwerte werden von Serverless for Apache Spark für das Autoscaling verwendet?

Bei Serverless für Apache Spark werden die Messwerte für die dynamische Zuordnung von maximum-needed und running in Spark berücksichtigt, um zu entscheiden, ob eine Auf- oder Abwärtsskalierung erfolgen soll. Weitere Informationen finden Sie unter Autoscaling für Serverless for Apache Spark.

Kann ich das Autoscaling-Verhalten von Serverless für Apache Spark mit Spark-Attributen konfigurieren?

Ja. Das Autoscaling von Serverless für Apache Spark basiert auf der dynamischen Zuordnung von Spark und ist standardmäßig aktiviert. Sie können die folgenden Spark-Attribute und Spark-Attribute für die dynamische Zuordnung anpassen:

  • spark.executor.instances
  • spark.dynamicAllocation.initialExecutors
  • spark.dynamicAllocation.minExecutors
  • spark.dynamicAllocation.maxExecutors

Warum muss ich meinen Code in einer JAR-Datei verpacken, um meinen Spark-Arbeitslast zu senden?

Spark ist in Scala geschrieben. Das bedeutet, dass sowohl der Treiber als auch die Worker-Prozesse als JVM-Prozesse ausgeführt werden. In JVM-Sprachen ist die JAR-Datei die primäre Methode zum Verpacken von Code. Sie übergeben die JAR-Datei an Serverless for Apache Spark, wenn Sie eine Arbeitslast senden.