Ausführen einer Spark-Anwendung mit Apache Livy für Amazon EMR auf EKS - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Ausführen einer Spark-Anwendung mit Apache Livy für Amazon EMR auf EKS

Bevor Sie eine Spark-Anwendung mit Apache Livy ausführen können, stellen Sie sicher, dass Sie die Schritte unter Apache Livy für Amazon einrichten EMR auf EKS und Erste Schritte mit Apache Livy for Amazon on abgeschlossen haben. EMR EKS

Sie können Apache Livy verwenden, um zwei Arten von Anwendungen auszuführen:

  • Batch-Sitzungen — eine Art von Livy-Workload zum Senden von Spark-Batch-Jobs.

  • Interaktive Sitzungen — eine Art von Livy-Workload, der eine programmatische und visuelle Oberfläche zur Ausführung von Spark-Abfragen bietet.

Anmerkung

Treiber- und Executor-Pods aus verschiedenen Sitzungen können miteinander kommunizieren. Namespaces garantieren keine Sicherheit zwischen Pods. Kubernetes erlaubt keine selektiven Berechtigungen für eine Teilmenge von Pods innerhalb eines bestimmten Namespace.

Batch-Sitzungen ausführen

Verwenden Sie den folgenden Befehl, um einen Batch-Job zu senden.

curl -s -k -H 'Content-Type: application/json' -X POST \ -d '{ "name": "my-session", "file": "entryPoint_location (S3 or local)", "args": ["argument1", "argument2", ...], "conf": { "spark.kubernetes.namespace": "<spark-namespace>", "spark.kubernetes.container.image": "public.ecr.aws/emr-on-eks/spark/emr-7.3.0:latest", "spark.kubernetes.authenticate.driver.serviceAccountName": "<spark-service-account>" } }' <livy-endpoint>/batches

Verwenden Sie den folgenden Befehl, um Ihren Batch-Job zu überwachen.

curl -s -k -H 'Content-Type: application/json' -X GET <livy-endpoint>/batches/my-session

Interaktive Sitzungen ausführen

Gehen Sie wie folgt vor, um interaktive Sitzungen mit Apache Livy auszuführen.

  1. Stellen Sie sicher, dass Sie Zugriff auf ein selbst gehostetes oder ein verwaltetes Jupyter-Notebook haben, z. B. ein Jupyter-Notebook. SageMaker Auf Ihrem Jupyter-Notebook muss Sparkmagic installiert sein.

  2. Erstellen Sie einen Bucket für die Spark-Konfiguration. spark.kubernetes.file.upload.path Stellen Sie sicher, dass das Spark-Dienstkonto Lese- und Schreibzugriff auf den Bucket hat. Weitere Informationen zur Konfiguration Ihres Spark-Dienstkontos finden Sie unter Zugriffsberechtigungen mit IAM Rollen für Dienstkonten einrichten (IRSA)

  3. Laden Sie sparkmagic mit dem Befehl in das Jupyter-Notebook. %load_ext sparkmagic.magics

  4. Führen Sie den Befehl aus%manage_spark, um Ihren Livy-Endpunkt mit dem Jupyter-Notebook einzurichten. Wählen Sie die Registerkarte Endpunkte hinzufügen, wählen Sie den konfigurierten Authentifizierungstyp aus, fügen Sie den Livy-Endpunkt zum Notizbuch hinzu und wählen Sie dann Endpunkt hinzufügen.

  5. Führen Sie den %manage_spark Vorgang erneut aus, um den Spark-Kontext zu erstellen, und wechseln Sie dann zur Sitzung erstellen. Wählen Sie den Livy-Endpunkt, geben Sie einen eindeutigen Sitzungsnamen an, wählen Sie eine Sprache und fügen Sie dann die folgenden Eigenschaften hinzu.

    { "conf": { "spark.kubernetes.namespace": "livy-namespace", "spark.kubernetes.container.image": "public.ecr.aws/emr-on-eks/spark/emr-7.3.0:latest", "spark.kubernetes.authenticate.driver.serviceAccountName": "<spark-service-account>", "spark.kubernetes.file.upload.path": "<URI_TO_S3_LOCATION_>" } }
  6. Reichen Sie die Anwendung ein und warten Sie, bis sie den Spark-Kontext erstellt hat.

  7. Führen Sie den folgenden Befehl aus, um den Status der interaktiven Sitzung zu überwachen.

    curl -s -k -H 'Content-Type: application/json' -X GET livy-endpoint/sessions/my-interactive-session

Überwachung von Spark-Anwendungen

Verwenden Sie den Linkhttp://<livy-endpoint>/ui, um den Fortschritt Ihrer Spark-Anwendungen mit der Livy-Benutzeroberfläche zu überwachen.