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
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.
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.
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:
-
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.
-
Verwenden Sie die 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. Ersetzenus-east-1
mit der Region, in der sich Ihr Cluster befindet. Weitere Informationen finden Sie unter Hinzufügen von Schritten zu einem Cluster mithilfe der 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
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. Beispiele finden Sie unter Verwenden Virtualenv
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
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
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
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")