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.
Stellen Sie von Ihrem Notebook aus eine Connect zu einem Amazon EMR-Cluster her
Wenn Sie von Ihrem Jupyter Notebook in Studio aus eine Verbindung zu einem Amazon EMR-Cluster herstellen, müssen Sie möglicherweise zusätzliche Einstellungen vornehmen. In der folgenden Diskussion werden insbesondere zwei Probleme behandelt:
-
Übergeben von Parametern an Ihren Amazon EMR-Verbindungsbefehl. In SparkMagic Kerneln funktionieren Parameter, die Sie an Ihren Amazon EMR-Verbindungsbefehl übergeben, möglicherweise nicht wie erwartet, da Papermill Unterschiede in der Art und Weise hat, wie Papermill Parameter weitergibt und wie SparkMagic Parameter empfängt. Die Behelfslösung zur Behebung dieser Einschränkung besteht darin, Parameter als Umgebungsvariablen zu übergeben. Weitere Informationen zum Problem und zur Problemumgehung finden Sie unter Übergeben Sie Parameter an Ihren EMR-Verbindungsbefehl.
-
Weitergabe von Benutzeranmeldedaten an Kerberos-, LDAP- oder HTTP Basic Auth-authentifizierte Amazon EMR-Cluster. Im interaktiven Modus fragt Studio in einem Popup-Formular nach Anmeldeinformationen, in das Sie Ihre Anmeldeinformationen eingeben können. In Ihrem nicht-interaktiven Notebook müssen Sie sie durch das AWS Secrets Manager durchreichen. Weitere Informationen zur Verwendung der Jobs AWS Secrets Manager in Ihrem geplanten Notizbuch finden Sie unter. Übergeben Sie Benutzeranmeldeinformationen an Ihren Kerberos-, LDAP- oder HTTP Basic Auth-authentifizierten Amazon EMR-Cluster
Übergeben Sie Parameter an Ihren EMR-Verbindungsbefehl
Wenn Sie Images mit dem SparkMagic PySpark und Spark-Kernel verwenden und Ihren EMR-Verbindungsbefehl parametrisieren möchten, geben Sie Ihre Parameter im Feld Umgebungsvariablen statt im Feld Parameter im Formular Job erstellen (im Dropdownmenü Zusätzliche Optionen) an. Stellen Sie sicher, dass Ihr EMR-Verbindungsbefehl im Jupyter Notebook diese Parameter als Umgebungsvariablen übergibt. Nehmen wir zum Beispiel an, Sie übergeben cluster-id
als Umgebungsvariable, wenn Sie Ihren Auftrag erstellen. Ihr EMR-Verbindungsbefehl sollte wie folgt aussehen:
%%local import os
%sm_analytics emr connect —cluster-id {os.getenv('cluster_id')} --auth-type None
Sie benötigen diese Problemumgehung, um die Anforderungen von und Papermill zu erfüllen. SparkMagic Für den Hintergrundkontext erwartet der SparkMagic Kernel, dass der %%local
magische Befehl allen von Ihnen definierten lokalen Variablen beiliegt. Papermill gibt den %%local
magischen Befehl jedoch nicht zusammen mit Ihren Überschreibungen weiter. Um diese Papermill-Einschränkung zu umgehen, müssen Sie Ihre Parameter als Umgebungsvariablen im Feld Umgebungsvariablen angeben.
Übergeben Sie Benutzeranmeldeinformationen an Ihren Kerberos-, LDAP- oder HTTP Basic Auth-authentifizierten Amazon EMR-Cluster
Um eine sichere Verbindung zu einem Amazon EMR-Cluster herzustellen, der Kerberos-, LDAP- oder HTTP Basic Auth-Authentifizierung verwendet, verwenden Sie den Befehl AWS Secrets Manager to pass user credentials to your connection. Informationen zum Erstellen eines Geheimnisses im Secrets Manager finden Sie unter Erstellen eines AWS Secrets Manager
-Geheimnisses. Ihr Geheimnis muss Ihren Benutzernamen und Ihr Passwort enthalten. Sie übergeben das Geheimnis mit dem --secrets
Argument, wie im folgenden Beispiel dargestellt:
%sm_analytics emr connect --cluster-id j_abcde12345 --auth Kerberos --secret aws_secret_id_123
Ihr Administrator kann eine flexible Zugriffsrichtlinie mithilfe einer attribute-based-access-control (ABAC-) Methode einrichten, bei der der Zugriff auf der Grundlage spezieller Tags zugewiesen wird. Sie können flexiblen Zugriff einrichten, um ein einzelnes Geheimnis für alle Benutzer im Konto oder ein Geheimnis für jeden Benutzer zu erstellen. Die folgenden Codebeispiele veranschaulichen diese Szenarien:
Erstellen Sie ein einzelnes Geheimnis für alle Benutzer im Konto
{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : {"AWS" : "arn:aws:iam::
AWS_ACCOUNT_ID
:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345"}, "Action" : "secretsmanager:GetSecretValue", "Resource" : [ "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID
:secret:aes123-1a2b3c", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID
:secret:aes456-4d5e6f", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID
:secret:aes789-7g8h9i" ] } ] }
Erstellen Sie für jeden Benutzer ein anderes Geheimnis
Mit dem PrincipleTag
Tag können Sie für jeden Benutzer ein anderes Geheimnis erstellen, wie im folgenden Beispiel gezeigt:
{ "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : {"AWS" : "arn:aws:iam::
AWS_ACCOUNT_ID
:role/service-role/AmazonSageMaker-ExecutionRole-20190101T012345"}, "Condition" : { "StringEquals" : { "aws:ResourceTag/user-identity
": "${aws:PrincipalTag/user-identity
}" } }, "Action" : "secretsmanager:GetSecretValue", "Resource" : [ "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID
:secret:aes123-1a2b3c", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID
:secret:aes456-4d5e6f", "arn:aws:secretsmanager:us-west-2:AWS_ACCOUNT_ID
:secret:aes789-7g8h9i" ] } ] }