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.
Anpassen von Docker-Images für Flink und FluentD
Gehen Sie wie folgt vor, um Docker-Images für EMR Amazon EKS mit Apache Flink- oder FluentD-Images anzupassen. Dazu gehören technische Anleitungen zum Abrufen eines Basis-Images, zum Anpassen, Veröffentlichen und Einreichen eines Workloads.
Themen
Voraussetzungen
Bevor Sie Ihr Docker-Image anpassen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben:
-
Die Schritte „Einrichtung des Flink Kubernetes-Operators für Amazon EMR“ wurden abgeschlossen. EKS
-
Docker in Ihrer Umgebung installiert. Weitere Informationen finden Sie unter Docker holen
.
Schritt 1: Rufen Sie ein Basis-Image aus der Amazon Elastic Container Registry ab
Das Basis-Image enthält die EMR Amazon-Laufzeit und die Konnektoren, die Sie für den Zugriff auf andere benötigen AWS-Services. Wenn Sie Amazon EMR on EKS mit Flink Version 6.14.0 oder höher verwenden, können Sie die Basisbilder aus der Amazon ECR Public Gallery abrufen. Durchsuchen Sie die Galerie nach dem Image-Link und laden Sie das Image in Ihren lokalen Workspace. Für die Amazon-Version EMR 6.14.0 gibt der folgende docker pull
Befehl beispielsweise das neueste Standard-Basis-Image zurück. Ersetzen Sie es emr-6.14.0:latest
durch die gewünschte Release-Version.
docker pull public.ecr.aws/emr-on-eks/flink/emr-6.14.0-flink:latest
Im Folgenden finden Sie Links zum Flink-Galeriebild und zum Fluentd-Galeriebild:
Schritt 2: Ein Basis-Image anpassen
In den folgenden Schritten wird beschrieben, wie Sie das Basis-Image, das Sie von Amazon abgerufen haben, anpassen könnenECR.
-
Erstellen Sie ein neues
Dockerfile
in Ihrem lokalen Workspace. -
Bearbeiten Sie den
Dockerfile
und fügen Sie den folgenden Inhalt hinzu. Dabei wird das Container-ImageDockerfile
verwendet, aus dem Sie abgerufen habenpublic.ecr.aws/emr-on-eks/flink/emr-7.5.0-flink:latest
.FROM public.ecr.aws/emr-on-eks/flink/emr-7.5.0-flink:latest USER root ### Add customization commands here #### USER hadoop:hadoop
Verwenden Sie die folgende Konfiguration, wenn Sie verwenden
Fluentd
.FROM public.ecr.aws/emr-on-eks/fluentd/emr-7.5.0:latest USER root ### Add customization commands here #### USER hadoop:hadoop
-
Fügen Sie Befehle in
Dockerfile
hinzu, um das Basis-Image anzupassen. Der folgende Befehl zeigt, wie Python-Bibliotheken installiert werden.FROM public.ecr.aws/emr-on-eks/flink/emr-7.5.0-flink:latest USER root RUN pip3 install --upgrade boto3 pandas numpy // For python 3 USER hadoop:hadoop
-
Führen Sie in demselben Verzeichnis, in dem Sie es erstellt haben
DockerFile
, den folgenden Befehl aus, um das Docker-Image zu erstellen. Das Feld, das Sie hinter dem-t
Flag angeben, ist Ihr benutzerdefinierter Name für das Image.docker build -t <
YOUR_ACCOUNT_ID
>.dkr.ecr.<YOUR_ECR_REGION
>.amazonaws.com/<ECR_REPO
>:<ECR_TAG
>
Schritt 3: Veröffentlichen Sie Ihr benutzerdefiniertes Bild
Sie können das neue Docker-Image jetzt in Ihrer ECR Amazon-Registrierung veröffentlichen.
-
Führen Sie den folgenden Befehl aus, um ein ECR Amazon-Repository zum Speichern Ihres Docker-Images zu erstellen. Geben Sie einen Namen für Ihr Repository ein, z. B.
emr_custom_repo.
Weitere Informationen finden Sie unter Erstellen eines Repositorys im Amazon Elastic Container Registry User Guide.aws ecr create-repository \ --repository-name emr_custom_repo \ --image-scanning-configuration scanOnPush=true \ --region <AWS_REGION>
-
Führen Sie den folgenden Befehl aus, um Ihre Ressourcen zu löschen. Weitere Informationen finden Sie unter Authentifizieren Sie sich bei Ihrer Standardregistrierung im Amazon Elastic Container Registry User Guide.
aws ecr get-login-password --region <
AWS_REGION
> | docker login --username AWS --password-stdin <AWS_ACCOUNT_ID
>.dkr.ecr.<YOUR_ECR_REGION
>.amazonaws.com -
Übertragen Sie das Image per Push. Weitere Informationen finden Sie unter Ein Bild an Amazon übertragen ECR im Amazon Elastic Container Registry-Benutzerhandbuch.
docker push <
YOUR_ACCOUNT_ID
>.dkr.ecr.<YOUR_ECR_REGION
>.amazonaws.com/<ECR_REPO
>:<ECR_TAG
>
Schritt 4: Reichen Sie einen Flink-Workload EMR mit einem benutzerdefinierten Bild bei Amazon ein
Nehmen Sie die folgenden Änderungen an Ihrer FlinkDeployment
Spezifikation vor, um ein benutzerdefiniertes Bild zu verwenden. Geben Sie dazu Ihr eigenes Bild in die spec.image
Zeile Ihrer Bereitstellungsspezifikation ein.
apiVersion: flink.apache.org/v1beta1 kind: FlinkDeployment metadata: name: basic-example spec: flinkVersion: v1_18 image: <
YOUR_ACCOUNT_ID
>.dkr.ecr.<YOUR_ECR_REGION
>.amazonaws.com/<ECR_REPO
>:<ECR_TAG
> imagePullPolicy: Always flinkConfiguration: taskmanager.numberOfTaskSlots: "1"
Um ein benutzerdefiniertes Image für Ihren Fluentd-Job zu verwenden, geben Sie Ihr eigenes Bild in die monitoringConfiguration.image
Zeile Ihrer Bereitstellungsspezifikation ein.
monitoringConfiguration: image: <
YOUR_ACCOUNT_ID
>.dkr.ecr.<YOUR_ECR_REGION
>.amazonaws.com/<ECR_REPO
>:<ECR_TAG
> cloudWatchMonitoringConfiguration: logGroupName: flink-log-group logStreamNamePrefix: custom-fluentd