Konfigurieren von AWS Glue-interaktiven Sitzungen für Jupyter und AWS Glue Studio-Notebooks
Einführung in Jupyter Magics
Jupyter Magics sind Befehle, die am Anfang einer Zelle oder als ganzer Zellinhalt ausgeführt werden können. Zeilen-Magics beginnen mit % und Zellen-Magics mit %%. Zeilen-Magics wie %region und %connections können wie im folgenden Beispiel mit mehreren Magics in einer Zelle oder mit Code im Zellinhalt ausgeführt werden.
%region us-east-2 %connections my_rds_connection dy_f = glue_context.create_dynamic_frame.from_catalog(database='rds_tables', table_name='sales_table')
Zell-Magics müssen die gesamte Zelle verwenden und der Befehl kann sich über mehrere Zeilen erstrecken. Ein Beispiel für %%sql sehen Sie unten.
%%sql select * from rds_tables.sales_table
Unterstützte Magics in AWS Glue-interaktiven Sitzungen für Jupyter
Im Folgenden finden Sie Magics, die Sie in AWS Glue Interactive Sessions für Jupyter Notebooks verwenden können.
Sessions Magics
| Name | Typ | Beschreibung |
|---|---|---|
%help
|
– | Gibt eine Liste von Beschreibungen und Eingabetypen für alle magischen Befehle zurück. |
%profile |
String | Geben Sie ein Profil in Ihrer AWS-Konfiguration an, das als Anbieter der Anmeldeinformationen verwendet werden soll. |
%region |
String |
Geben Sie die AWS-Region an; in der eine Sitzung initialisiert werden soll. Standardwert aus Beispiel: |
%idle_timeout |
Int |
Die Anzahl der Minuten von Inaktivität, nach denen eine Zeitüberschreitung für eine Sitzung auftritt, nachdem eine Zelle ausgeführt wurde. Der Standardwert für die Zeitüberschreitung für Spark-ETL-Sitzungen ist der Standardwert für die Zeitüberschreitung, 2 880 Minuten (48 Stunden). Informationen zu anderen Sitzungstypen finden Sie in der Dokumentation für diesen Sitzungstyp. Beispiel: |
%session_id |
– | Gibt die Sitzungs-ID für die laufende Sitzung zurück. |
%session_id_prefix |
String |
Definiert eine Zeichenfolge, die allen Sitzungs-IDs im Format [session_id_prefix]-[session_id] vorangestellt wird. Wenn keine Sitzungs-ID angegeben wird, wird eine zufällige UUID generiert. Dieses Magic wird nicht unterstützt, wenn Sie ein Jupyter Notebook in AWS Glue Studio ausführen. Beispiel: |
%status |
Gibt den Status der aktuellen AWS Glue-Sitzung zurück, einschließlich Dauer, Konfiguration und ausführende(r) Benutzer/Rolle. | |
%stop_session
| Beenden Sie die aktuelle Sitzung. | |
%list_sessions |
Listet alle derzeit ausgeführten Sitzungen nach Name und ID auf. | |
%session_type |
String |
Legt den Sitzungstyp auf Streaming, ETL oder Ray fest. Beispiel: |
%glue_version |
String |
Die Version von AWS Glue, die von dieser Sitzung verwendet werden soll. Beispiel: |
Magics für die Auswahl von Auftragstypen
| Name | Typ | Beschreibung |
|---|---|---|
%streaming |
String | Ändert den Sitzungstyp in AWS Glue Streaming. |
%etl |
String | Ändert den Sitzungstyp in AWS Glue ETL. |
| %glue_ray | String | Ändert den Sitzungstyp in AWS Glue für Ray. Lesen Sie Unterstützte Magics durch interaktive AWS Glue-Ray-Sitzungen. |
AWS Glue for Spark config magics
Das %%configure-Magic ist ein JSON-formatiertes Wörterbuch, das alle Konfigurationsparameter für eine Sitzung enthält. Jeder Parameter kann hier oder durch einzelne Magics angegeben werden.
| Name | Typ | Beschreibung |
|---|---|---|
%%configure
|
Dictionary |
Geben Sie ein JSON-formatiertes Wörterbuch an, das aus allen Konfigurationsparametern für eine Sitzung besteht. Jeder Parameter kann hier oder durch einzelne Magics angegeben werden. Eine Liste der Parameter und Beispiele zur Verwendung von |
%iam_role |
String |
Gibt den ARN einer IAM-Rolle an, mit der Ihre Sitzung ausgeführt wird. Standardwert aus ~/.aws/configure. Beispiel: |
%number_of_workers |
Int |
Die Anzahl der Worker eines definierten worker_type, die zugewiesen werden, wenn ein Auftrag ausgeführt wird. Beispiel: |
%additional_python_modules |
Auflisten |
Durch Kommas getrennte Liste zusätzlicher Python-Module, die in Ihren Cluster aufgenommen werden sollen (kann von PyPI oder S3 stammen). Beispiel: |
%%tags |
String |
Fügt einer Sitzung Tags hinzu. Geben Sie die Tags in geschweiften Klammern { } an. Jedes Tag-Namenspaar wird in Klammern („“) eingeschlossen und durch ein Komma (,) getrennt.
Nutzen Sie dieses
|
%%assume_role |
Dictionary |
Geben Sie ein JSON-formatiertes Wörterbuch oder eine IAM-Rollen-ARN-Zeichenfolge an, um eine Sitzung für den kontoübergreifenden Zugriff zu erstellen. Beispiel mit ARN:
Beispiel mit Anmeldeinformationen:
|
%%configure cell magic arguments
Das %%configure-Magic ist ein JSON-formatiertes Wörterbuch, das alle Konfigurationsparameter für eine Sitzung enthält. Jeder Parameter kann hier oder durch einzelne Magics angegeben werden. Nachfolgend finden Sie Beispiele für Argumente, die von dem %%configure-Zellen-Magic unterstützt werden. Verwenden Sie das Präfix -- für Ausführungsargumente, die für den Auftrag angegeben wurden. Beispiel:
%%configure { "--user-jars-first": "true", "--enable-glue-datacatalog": "false" }
Weitere Informationen zu Auftragsparametern finden Sie unter Auftragsparameter.
Sitzungskonfiguration
| Parameter | Typ | Beschreibung |
|---|---|---|
max_retries |
Int | Die maximale Anzahl der Wiederholungsversuche für diesen Auftrag, wenn er fehlschlägt.
|
max_concurrent_runs |
Int | Die maximale Anzahl der gleichzeitigen Ausführungen, die für einen Auftrag zulässig sind. Beispiel:
|
Sitzungsparameter
| Parameter | Typ | Beschreibung |
|---|---|---|
--enable-spark-ui |
Boolesch | Aktivieren Sie die Spark-Benutzeroberfläche zum Überwachen und Debuggen von AWS Glue-ETL-Aufträgen.
|
--spark-event-logs-path |
String | Gibt einen Amazon-S3-Pfad an. Bei Verwendung des Spark UI-Überwachungs-Features. Beispiel:
|
--script_location |
String | Gibt den S3-Pfad zu einem Skript an, das einen Auftrag ausführt. Beispiel:
|
--SECURITY_CONFIGURATION |
String | Der Namen einer AWS Glue-Sicherheitskonfiguration Beispiel:
|
--job-language |
String | Die Skript-Programmiersprache. Akzeptiert den Wert „scala“ oder „python“. Die Standardeinstellung ist „python“. Beispiel:
|
--class |
String | Die Scala-Klasse, die als Einstiegspunkt für Ihr Scala-Skript dient. Die Standardeinstellung ist null. Beispiel:
|
--user-jars-first |
Boolesch | Priorisiert die zusätzlichen JAR-Dateien des Kunden im Klassenpfad. Die Standardeinstellung ist null. Beispiel:
|
--use-postgres-driver |
Boolesch | Priorisiert den Postgres-JDBC-Treiber im Klassenpfad, um einen Konflikt mit dem Amazon Redshift-JDBC-Treiber zu vermeiden. Die Standardeinstellung ist null. Beispiel:
|
--extra-files |
List(string) | Die Amazon-S3-Pfade zu zusätzlichen Dateien, z. B. Konfigurationsdateien, die AWS Glue vor der Ausführung in das Arbeitsverzeichnis Ihres Skripts kopiert. Beispiel:
|
--job-bookmark-option |
String | Steuert die Darstellung eines Auftrags-Lesezeichens. Akzeptiert den Wert „job-bookmark-enable“, „job-bookmark-disable“ oder „job-bookmark-pause“. Die Standardeinstellung ist „job-bookmark-disable“. Beispiel:
|
--TempDir |
String | Gibt einen Amazon-S3-Pfad zu einem Bucket an, der als temporäres Verzeichnis für den Auftrag verwendet werden kann. Die Standardeinstellung ist null. Beispiel:
|
--enable-s3-parquet-optimized-committer |
Boolesch | Aktiviert den für EMRFS Amazon S3 optimierten Committer zum Schreiben von Parquet-Daten in Amazon S3. Die Standardeinstellung ist 'true'. Beispiel:
|
--enable-rename-algorithm-v2 |
Boolesch | Setzt die Version des EMRFS-Umbenennungsalgorithmus auf Version 2. Die Standardeinstellung ist 'true'. Beispiel:
|
--enable-glue-datacatalog |
Boolesch | Ermöglicht Ihnen die Verwendung des AWS Glue Data Catalog als Apache-Spark-Hive-Metaspeicher. Beispiel:
|
--enable-metrics |
Boolesch | Ermöglicht die Erfassung von Metriken zur Auftragsprofilerstellung für die Auftragsausführung. Standard ist 'false'. Beispiel:
|
--enable-continuous-cloudwatch-log |
Boolesch | Aktiviert die kontinuierliche Echtzeitprotokollierung für AWS Glue-Aufträge. Standard ist 'false'. Beispiel:
|
--enable-continuous-log-filter |
Boolesch | Gibt einen Standardfilter oder keinen Filter an, wenn Sie einen Auftrag erstellen oder bearbeiten, der für die kontinuierliche Protokollierung aktiviert ist. Die Standardeinstellung ist 'true'. Beispiel:
|
--continuous-log-stream-prefix |
String | Gibt ein benutzerdefiniertes Amazon CloudWatch-Protokollstream-Präfix für einen Auftrag an, der für die kontinuierliche Protokollierung aktiviert ist. Die Standardeinstellung ist null. Beispiel:
|
--continuous-log-conversionPattern |
String | Gibt ein benutzerdefiniertes Konvertierungsprotokollmuster für einen Auftrag an, der für die kontinuierliche Protokollierung aktiviert ist. Die Standardeinstellung ist null. Beispiel:
|
--conf |
String | Sie steuert die Spark-Konfigurationsparameter. Sie ist für fortschrittliche Anwendungsfälle. Verwenden Sie --conf vor jedem Parameter. Beispiel:
|
| timeout | Int | Legt die maximale Zeit fest, die die Spark-Sitzung auf die Ausführung einer Anweisung warten soll, bevor sie beendet wird.
|
| Auto Scaling | Boolesch | Legt fest, ob die Auto Scaling verwendet werden soll oder nicht.
|
Magic von Spark-Aufträgen (ETL und Streaming)
| Name | Typ | Beschreibung |
|---|---|---|
%worker_type |
String | Standard, G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, R.1X, R.2X, R.4X oder R.8X. number_of_workers muss ebenfalls festgelegt sein. Der Standardwert für „worker_type“ ist G.1X. |
%connections |
Auflisten |
Geben Sie eine kommagetrennte Liste der Verbindungen an, die in der Sitzung verwendet werden sollen. Beispiel:
|
%extra_py_files |
Auflisten | Durch Kommas getrennte Liste mit zusätzlichen Python-Dateien von Amazon S3. |
%extra_jars |
Auflisten | Durch Kommas getrennte Liste mit zusätzlichen Jars, die in den Cluster aufgenommen werden sollen. |
%spark_conf |
String | Geben Sie benutzerdefinierte Spark-Konfigurationen für Ihre Sitzung an. Beispiel, %spark_conf spark.serializer=org.apache.spark.serializer.KryoSerializer. |
Magics für Ray-Aufträgen
| Name | Typ | Beschreibung |
|---|---|---|
%min_workers |
Int | Die Mindestanzahl von Workern, die einem Ray-Auftrag zugewiesen werden. Standard: 1 Beispiel: |
%object_memory_head |
Int | Der Prozentsatz des freien Speichers auf dem Hauptknoten der Instance nach einem Warmstart. Minimum: 0. Maximum: 100. Beispiel: |
| %object_memory_worker | Int | Der Prozentsatz des freien Arbeitsspeichers auf den Instance-Worker-Knoten nach einem Warmstart. Minimum: 0. Maximum: 100. Beispiel: |
Action Magics
| Name | Typ | Beschreibung |
|---|---|---|
%%sql |
String |
Führt SQL-Code aus. Alle Zeilen nach dem ersten Beispiel: |
%matplot |
Matplotlib-Abbildung |
Visualisieren Sie Ihre Daten mit der Matplotlib-Bibliothek. Beispiel:
|
%plotly |
Plotly-Abbildung |
Visualisieren Sie Ihre Daten mit der Plotly-Bibliothek. Beispiel:
|
Benennen von Sitzungen
AWS Glue-interaktive Sitzungen sind AWS-Ressourcen und erfordern einen Namen. Namen sollten für jede Sitzung eindeutig sein und können von Ihren IAM-Administratoren eingeschränkt werden. Weitere Informationen finden Sie unter Interaktive Sitzungen mit IAM. Der Jupyter-Kernel generiert automatisch eindeutige Sitzungsnamen für Sie. Es gibt jedoch zwei Möglichkeiten, um Sitzungen manuell zu benennen:
-
Verwendung der Konfigurationsdatei AWS Command Line Interface, die sich unter
~.aws/configbefindet. Siehe Einrichten der AWS-Konfiguration mit AWS Command Line Interface. -
Verwendung der
%session_id_prefix-Magics. Siehe Unterstützte Magics in AWS Glue-interaktiven Sitzungen für Jupyter .
Ein Sitzungsname wird wie folgt generiert:
Wenn das Präfix und session_id angegeben werden: Der Sitzungsname lautet {prefix}-{UUID}.
Wenn nichts angegeben wird: Der Sitzungsname lautet {UUID}.
Durch die Angabe eines Präfix können Sie Ihre Sitzung beim Auflisten in der AWS CLI oder in der Konsole leichter wiederfinden.
Angeben einer IAM-Rolle für interaktive Sitzungen
Sie müssen eine AWS Identity and Access Management (IAM)-Rolle angeben, mit der AWS Glue ETL-Code verwendet werden soll, den Sie mit interaktiven Sitzungen ausführen.
Die Rolle muss über dieselben IAM-Berechtigungen verfügen, die zum Ausführen von AWS Glue-Aufträgen erforderlich sind. Weitere Informationen zum Erstellen einer Rolle für AWS Glue-Aufträge und interaktive Sitzungen finden Sie unter Erstellen einer IAM-Rolle für AWS Glue.
IAM-Rollen können auf zwei Arten angegeben werden:
-
Verwendung der AWS Command Line Interface-Konfigurationsdatei, die sich unter
~.aws/configbefindet (empfohlen). Weitere Informationen finden Sie unter Konfigurieren von Sitzungen mit ~/.aws/config .Anmerkung
Wenn die Magic-Anweisung
%profileverwendet wird, wird die Konfiguration fürglue_iam_roledieses Profils berücksichtigt. -
Verwendung der Magic-Anweisung „%iam_role“. Weitere Informationen finden Sie unter Unterstützte Magics in AWS Glue-interaktiven Sitzungen für Jupyter .
Konfigurieren von Sitzungen mit benannten Profilen
AWS Glue-interaktive Sitzungen verwenden die gleichen Anmeldeinformationen wie die AWS Command Line Interface oder boto3. Interaktive Sitzungen schätzen und arbeiten mit benannten Profilen wie die AWS CLI, die in ~/.aws/config (Linux und macOS) oder %USERPROFILE%\.aws\config (Windows) zu finden sind. Weitere Informationen finden Sie unter Verwendung benannter Profile.
Interaktive Sitzungen nutzen benannte Profile, indem sie die Angabe der AWS Glue-Servicerolle und des Sitzungs-ID-Präfix in einem Profil zulassen. Um eine Profilrolle zu konfigurieren, fügen Sie eine Zeile für den Schlüssel iam_role und/oder session_id_prefix wie unten gezeigt in Ihrem benannten Profil hinzu. Für sind session_id_prefix keine Anführungszeichen erforderlich. Wenn Sie beispielsweise einen
session_id_prefix hinzufügen möchten, geben Sie den Wert von session_id_prefix=myprefix ein.
[default] region=us-east-1 aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY glue_iam_role=arn:aws:iam::<AccountID>:role/<GlueServiceRole> session_id_prefix=<prefix_for_session_names> [user1] region=eu-west-1 aws_access_key_id=AKIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY glue_iam_role=arn:aws:iam::<AccountID>:role/<GlueServiceRoleUser1> session_id_prefix=<prefix_for_session_names_for_user1>
Wenn Sie eine benutzerdefinierte Methode zum Generieren von Anmeldeinformationen nutzen, können Sie Ihr Profil auch dafür konfigurieren, credential_process-Parameter in Ihrer ~/.aws/config-Datei zu verwenden. Zum Beispiel:
[profile developer] region=us-east-1 credential_process = "/Users/Dave/generate_my_credentials.sh" --username helen
Weitere Informationen zur Beschaffung von Anmeldeinformationen mithilfe der credential_process-Parameter finden Sie hier: Beschaffung von Anmeldeinformationen mit einem externen Prozess.
Wenn eine Region oder iam_role in dem von Ihnen verwendeten Profil nicht festgelegt sind, müssen Sie sie mit den Magic-Anweisungen %region und %iam_role in der ersten Zelle angeben, die Sie ausführen.