Installieren und Verwenden von Kerneln und Bibliotheken - 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.

Installieren und Verwenden von Kerneln und Bibliotheken

Anmerkung

EMRNotebooks sind in der Konsole als EMR Studio-Workspaces verfügbar. Mit der Schaltfläche „Arbeitsbereich erstellen“ in der Konsole können Sie neue Notizbücher erstellen. Um auf Workspaces zuzugreifen oder diese zu erstellen, benötigen EMR Notebook-Benutzer zusätzliche IAM Rollenberechtigungen. Weitere Informationen finden Sie unter Amazon EMR Notebooks sind Amazon EMR Studio-Workspaces in der Konsole und EMRAmazon-Konsole.

Jedes EMR Notebook wird mit einer Reihe vorinstallierter Bibliotheken und Kernel geliefert. Sie können zusätzliche Bibliotheken und Kernel in einem EMR Cluster installieren, wenn der Cluster Zugriff auf das Repository hat, in dem sich die Kernel und Bibliotheken befinden. Beispielsweise müssen Sie für Cluster in privaten Subnetzen möglicherweise die Netzwerkadressübersetzung (NAT) konfigurieren und einen Pfad angeben, über den der Cluster auf das öffentliche PyPI-Repository zugreifen kann, um eine Bibliothek zu installieren. Weitere Informationen zur Konfiguration des externen Zugriffs für verschiedene Netzwerkkonfigurationen finden Sie unter Szenarien und Beispiele im VPCAmazon-Benutzerhandbuch.

EMRServerlose Anwendungen verfügen über die folgenden vorinstallierten Bibliotheken für Python und: PySpark

  • Python-Bibliotheken – ggplot, matplotlib, numpy, pandas, plotly, bokeh, scikit-learn, scipy, scipy

  • PySpark Bibliotheken —ggplot,matplotlib,,numpy,pandas,plotly,bokeh, scikit-learn scipy scipy

Installieren von Kernels und Python-Bibliotheken auf einem Cluster-Primärknoten

Mit EMR Amazon-Release-Version 5.30.0 und höher, mit Ausnahme von 6.0.0, können Sie zusätzliche Python-Bibliotheken und -Kernel auf dem primären Knoten des Clusters installieren. Nach der Installation stehen diese Kernel und Bibliotheken allen Benutzern zur Verfügung, die ein an den Cluster angeschlossenes EMR Notebook ausführen. Auf diese Weise installierte Python-Bibliotheken sind nur für Prozesse verfügbar, die auf dem Primärknoten ausgeführt werden. Die Bibliotheken werden nicht auf Core- oder Aufgabenknoten installiert und sind für Executors, die auf diesen Knoten ausgeführt werden, nicht verfügbar.

Anmerkung

Für die EMR Amazon-Versionen 5.30.1, 5.31.0 und 6.1.0 müssen Sie zusätzliche Schritte unternehmen, um Kernel und Bibliotheken auf dem primären Knoten eines Clusters zu installieren.

Um das Feature zu aktivieren, gehen Sie wie folgt vor:

  1. Stellen Sie sicher, dass die der Servicerolle für Notebooks beigefügte Berechtigungsrichtlinie die folgende Aktion zulässtEMR:

    elasticmapreduce:ListSteps

    Weitere Informationen finden Sie unter Servicerolle für EMR Notebooks.

  2. Verwenden Sie den AWS CLI , um einen Schritt auf dem Cluster auszuführen, der EMR Notebooks einrichtet, wie im folgenden Beispiel gezeigt. Sie müssen den Schrittnamen EMRNotebooksSetup verwenden. Ersetzen us-east-1 mit der Region, in der sich Ihr Cluster befindet. Weitere Informationen finden Sie unter Hinzufügen von Schritten zu einem Cluster AWS CLI.

    aws emr add-steps --cluster-id MyClusterID --steps Type=CUSTOM_JAR,Name=EMRNotebooksSetup,ActionOnFailure=CONTINUE,Jar=s3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://awssupportdatasvcs.com/bootstrap-actions/EMRNotebooksSetup/emr-notebooks-setup.sh"]

Sie können Kernel und Bibliotheken mithilfe von pip oder conda im /emr/notebook-env/bin-Verzeichnis auf dem Primärknoten installieren.

Beispiel – Installieren von Python-Bibliotheken

Führen Sie im Python3-Kernel den %pip Magic als Befehl in einer Notebook-Zelle aus, um Python-Bibliotheken zu installieren.

%pip install pmdarima

Möglicherweise müssen Sie den Kernel neu starten, um aktualisierte Pakete verwenden zu können. Sie können auch die %%sh-Spark-Magie zum Aufrufen von pip verwenden.

%%sh /emr/notebook-env/bin/pip install -U matplotlib /emr/notebook-env/bin/pip install -U pmdarima

Wenn Sie einen PySpark Kernel verwenden, können Sie entweder Bibliotheken auf dem Cluster mithilfe von pip Befehlen installieren oder Bibliotheken für Notebooks innerhalb eines Notebooks verwenden. PySpark

Um pip Befehle auf dem Cluster vom Terminal aus auszuführen, stellen Sie zunächst, wie die folgenden Befehle zeigenSSH, eine Verbindung zum Primärknoten her.

sudo pip3 install -U matplotlib sudo pip3 install -U pmdarima

Alternativ können Sie Bibliotheken im Notebookbereich verwenden. Bei Bibliotheken für Notebooks ist Ihre Bibliotheksinstallation auf den Umfang Ihrer Sitzung beschränkt und erfolgt auf allen Spark-Executoren. Weitere Informationen finden Sie unter Verwenden von Notebook Bibliotheken.

Wenn Sie mehrere Python-Bibliotheken in einen PySpark Kernel packen möchten, können Sie auch eine isolierte virtuelle Python-Umgebung erstellen. Anwendungsbeispiele finden Sie unter VerwendenVirtualenv.

Um eine virtuelle Python-Umgebung in einer Sitzung zu erstellen, verwenden Sie die Spark-Eigenschaft spark.yarn.dist.archives aus dem %%configure magischen Befehl in der ersten Zelle in einem Notebook, wie das folgende Beispiel zeigt.

%%configure -f { "conf": { "spark.yarn.appMasterEnv.PYSPARK_PYTHON":"./environment/bin/python", "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON":"./environment/bin/python", "spark.yarn.dist.archives":"s3://DOC-EXAMPLE-BUCKET/prefix/my_pyspark_venv.tar.gz#environment", "spark.submit.deployMode":"cluster" } }

Auf ähnliche Weise können Sie eine Spark-Executor-Umgebung erstellen.

%%configure -f { "conf": { "spark.yarn.appMasterEnv.PYSPARK_PYTHON":"./environment/bin/python", "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON":"./environment/bin/python", "spark.executorEnv.PYSPARK_PYTHON":"./environment/bin/python", "spark.yarn.dist.archives":"s3://DOC-EXAMPLE-BUCKET/prefix/my_pyspark_venv.tar.gz#environment", "spark.submit.deployMode":"cluster" } }

Sie können es auch conda zur Installation von Python-Bibliotheken verwenden. Für die Verwendung von conda benötigen Sie keinen Sudo-Zugriff. Sie müssen sich mit SSH dem primären Knoten verbinden und dann vom Terminal conda aus starten. Weitere Informationen finden Sie unter Connect zum Primärknoten her mit SSH.

Beispiel – Installieren eines Kernels

Das folgende Beispiel zeigt die Installation des Kotlin-Kernels mithilfe eines Terminalbefehls, während eine Verbindung zum Primärknoten eines Clusters besteht:

sudo /emr/notebook-env/bin/conda install kotlin-jupyter-kernel -c jetbrains
Anmerkung

Diese Anweisungen installieren keine Kernel-Abhängigkeiten. Wenn Ihr Kernel Abhängigkeiten von Drittanbietern hat, müssen Sie möglicherweise zusätzliche Einrichtungsschritte durchführen, bevor Sie den Kernel mit Ihrem Notebook verwenden können.

Überlegungen und Einschränkungen bei Bibliotheken für Notebooks

Beachten Sie bei der Verwendung von Bibliotheken im Format Notebook-Scoped Folgendes:

  • Bibliotheken für Notebooks sind für Cluster verfügbar, die Sie mit EMR Amazon-Versionen 5.26.0 und höher erstellen.

  • Bibliotheken für Notebooks sind nur für die Verwendung mit dem Kernel vorgesehen. PySpark

  • Jeder Benutzer kann zusätzliche dedizierte Notebook-Bibliotheken innerhalb einer Notebook-Zelle installieren. Diese Bibliotheken stehen diesem Notebook-Benutzer nur während genau einer Notebook-Sitzung zur Verfügung. Wenn andere Benutzer dieselben Bibliotheken benötigen oder derselbe Benutzer dieselben Bibliotheken in einer anderen Sitzung benötigt, muss die Bibliothek neu installiert werden.

  • Sie können nur die Bibliotheken deinstallieren, die mit dem installiert wurden. install_pypi_package API Sie können keine Bibliotheken deinstallieren, die auf dem Cluster vorinstalliert sind.

  • Wenn dieselben Bibliotheken mit unterschiedlichen Versionen auf dem Cluster und als Notebook-Bibliotheken installiert sind, überschreibt die Version der Notebook-Bibliothek die Version der Cluster-Bibliothek.

Arbeiten mit Notebook-Bibliotheken

Um Bibliotheken zu installieren, muss Ihr EMR Amazon-Cluster Zugriff auf das PyPI-Repository haben, in dem sich die Bibliotheken befinden.

Die folgenden Beispiele zeigen einfache Befehle zum Auflisten, Installieren und Deinstallieren von Bibliotheken aus einer Notebook-Zelle heraus mithilfe des PySpark Kernels und. APIs Weitere Beispiele finden Sie im Beitrag Installieren von Python-Bibliotheken auf einem laufenden Cluster mit EMR Notebooks im AWS Big Data-Blog.

Beispiel – Auflisten aktueller Bibliotheken

Der folgende Befehl listet die Python-Pakete auf, die für die aktuelle Spark-Notebook-Sitzung verfügbar sind. Hiermit werden Bibliotheken aufgelistet, die auf dem Cluster installiert sind, und Bibliotheken für Notebook-Bereiche.

sc.list_packages()
Beispiel – Installieren der Celery-Bibliothek

Mit dem folgenden Befehl wird die Celery-Bibliothek als Notebook-Bibliothek installiert.

sc.install_pypi_package("celery")

Nach der Installation der Bibliothek bestätigt der folgende Befehl, dass die Bibliothek auf dem Spark-Treiber und den Executors verfügbar ist.

import celery sc.range(1,10000,1,100).map(lambda x: celery.__version__).collect()
Beispiel – Installieren der Arrow-Bibliothek unter Angabe der Version und des Repositorys

Mit dem folgenden Befehl wird die Arrow-Bibliothek als Bibliothek für Notebooks mit Angabe der Bibliotheksversion und des Repositorys installiert. URL

sc.install_pypi_package("arrow==0.14.0", "https://pypi.org/simple")
Beispiel – Deinstallieren einer Bibliothek

Der folgende Befehl deinstalliert die Pfeilbibliothek und entfernt sie als Notebook-Bibliothek aus der aktuellen Sitzung.

sc.uninstall_package("arrow")