

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menyesuaikan gambar Docker untuk Flink dan FluentD
<a name="jobruns-flink-docker-flink-fluentd"></a>

Ambil langkah-langkah berikut untuk menyesuaikan gambar Docker untuk Amazon EMR di EKS dengan gambar Apache Flink atau FluentD. Ini termasuk panduan teknis untuk mendapatkan gambar dasar, menyesuaikannya, menerbitkannya, dan mengirimkan beban kerja.

**Topics**
+ [Prasyarat](#jobruns-flink-docker-flink-fluentd-prereqs)
+ [Langkah 1: Ambil gambar dasar dari Amazon Elastic Container Registry](#jobruns-flink-docker-flink-fluentd-retrieve-base)
+ [Langkah 2: Sesuaikan gambar dasar](#jobruns-flink-docker-flink-fluentd-customize-image)
+ [Langkah 3: Publikasikan gambar kustom Anda](#jobruns-flink-docker-flink-fluentd-publish-image)
+ [Langkah 4: Kirim beban kerja Flink di Amazon EMR menggunakan gambar khusus](#jobruns-flink-docker-flink-fluentd-submit-workload)

## Prasyarat
<a name="jobruns-flink-docker-flink-fluentd-prereqs"></a>

Sebelum Anda menyesuaikan image Docker Anda, pastikan bahwa Anda telah menyelesaikan prasyarat berikut:
+ Menyelesaikan [Menyiapkan operator Flink Kubernetes untuk Amazon EMR](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/jobruns-flink-kubernetes-operator-setup.html) pada langkah-langkah EKS.
+ Menginstal Docker di lingkungan Anda. Untuk informasi lebih lanjut, lihat [Get Docker](https://docs.docker.com/get-docker/).

## Langkah 1: Ambil gambar dasar dari Amazon Elastic Container Registry
<a name="jobruns-flink-docker-flink-fluentd-retrieve-base"></a>

Gambar dasar berisi runtime Amazon EMR dan konektor yang perlu Anda akses lainnya. Layanan AWS Jika Anda menggunakan Amazon EMR di EKS dengan Flink versi 6.14.0 atau lebih tinggi, Anda bisa mendapatkan gambar dasar dari Galeri Publik Amazon ECR. Jelajahi galeri untuk menemukan tautan gambar dan tarik gambar ke ruang kerja lokal Anda. Misalnya, untuk rilis Amazon EMR 6.14.0, `docker pull` perintah berikut mengembalikan gambar dasar standar terbaru. Ganti `emr-6.14.0:latest` dengan versi rilis yang Anda inginkan.

```
docker pull public.ecr.aws/emr-on-eks/flink/emr-6.14.0-flink:latest
```

Berikut ini adalah tautan ke gambar galeri Flink dan gambar galeri Fluentd:
+ [emr-on-eks/flink/emr-6.14.0-flink](https://gallery.ecr.aws/emr-on-eks/flink/emr-6.14.0-flink)
+ [emr-on-eks/fasih/emr-6.14.0 (](https://gallery.ecr.aws/emr-on-eks/fluentd/emr-6.14.0)

## Langkah 2: Sesuaikan gambar dasar
<a name="jobruns-flink-docker-flink-fluentd-customize-image"></a>

Langkah-langkah berikut menjelaskan cara menyesuaikan gambar dasar yang Anda tarik dari Amazon ECR.

1. Buat `Dockerfile` baru di Workspace lokal Anda.

1. Edit `Dockerfile` dan tambahkan konten berikut. Ini `Dockerfile` menggunakan gambar kontainer yang Anda tarik`public.ecr.aws/emr-on-eks/flink/emr-7.12.0-flink:latest`.

   ```
   FROM public.ecr.aws/emr-on-eks/flink/emr-7.12.0-flink:latest
   USER root
   ### Add customization commands here ####
   USER hadoop:hadoop
   ```

   Gunakan konfigurasi berikut jika Anda menggunakan`Fluentd`.

   ```
   FROM public.ecr.aws/emr-on-eks/fluentd/emr-7.12.0:latest
   USER root
   ### Add customization commands here ####
   USER hadoop:hadoop
   ```

1. Tambahkan perintah di `Dockerfile` untuk menyesuaikan gambar dasar. Perintah berikut menunjukkan cara menginstal pustaka Python.

   ```
   FROM public.ecr.aws/emr-on-eks/flink/emr-7.12.0-flink:latest
   USER root
   RUN pip3 install --upgrade boto3 pandas numpy // For python 3
   USER hadoop:hadoop
   ```

1. Di direktori yang sama dengan tempat Anda membuat`DockerFile`, jalankan perintah berikut untuk membangun image Docker. Bidang yang Anda berikan mengikuti `-t` bendera adalah nama kustom Anda untuk gambar.

   ```
   docker build -t <YOUR_ACCOUNT_ID>.dkr.ecr.<YOUR_ECR_REGION>.amazonaws.com/<ECR_REPO>:<ECR_TAG>
   ```

## Langkah 3: Publikasikan gambar kustom Anda
<a name="jobruns-flink-docker-flink-fluentd-publish-image"></a>

Anda sekarang dapat mempublikasikan gambar Docker baru ke registri Amazon ECR Anda.

1. Jalankan perintah berikut untuk membuat repositori Amazon ECR untuk menyimpan image Docker Anda. Berikan nama untuk repositori Anda, seperti `emr_custom_repo.` Untuk informasi selengkapnya, lihat [Membuat repositori di Panduan Pengguna](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html#cli-create-repository) Amazon Elastic Container Registry.

   ```
   aws ecr create-repository \
          --repository-name emr_custom_repo \
          --image-scanning-configuration scanOnPush=true \
          --region <AWS_REGION>
   ```

1. Jalankan perintah berikut untuk mengautentikasi ke registri default Anda. Untuk informasi selengkapnya, lihat [Mengautentikasi ke registri default Anda](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html#cli-authenticate-registry) di Panduan Pengguna Amazon Elastic Container Registry.

   ```
   aws ecr get-login-password --region <AWS_REGION> | docker login --username AWS --password-stdin <AWS_ACCOUNT_ID>.dkr.ecr.<YOUR_ECR_REGION>.amazonaws.com
   ```

1. Tekan gambar. Untuk informasi selengkapnya, lihat [Mendorong gambar ke Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html#cli-push-image) di Panduan Pengguna Amazon Elastic Container Registry.

   ```
   docker push <YOUR_ACCOUNT_ID>.dkr.ecr.<YOUR_ECR_REGION>.amazonaws.com/<ECR_REPO>:<ECR_TAG>
   ```

## Langkah 4: Kirim beban kerja Flink di Amazon EMR menggunakan gambar khusus
<a name="jobruns-flink-docker-flink-fluentd-submit-workload"></a>

Buat perubahan berikut pada `FlinkDeployment` spesifikasi Anda untuk menggunakan gambar kustom. Untuk melakukannya, masukkan gambar Anda sendiri di `spec.image` baris spesifikasi penerapan Anda.

```
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"
```

Untuk menggunakan gambar kustom untuk pekerjaan Fluentd Anda, masukkan gambar Anda sendiri di `monitoringConfiguration.image` baris spesifikasi penerapan Anda.

```
  monitoringConfiguration:
       image: <YOUR_ACCOUNT_ID>.dkr.ecr.<YOUR_ECR_REGION>.amazonaws.com/<ECR_REPO>:<ECR_TAG>
       cloudWatchMonitoringConfiguration:
         logGroupName: flink-log-group
         logStreamNamePrefix: custom-fluentd
```