Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menjalankan EMR pada EKS pada cluster IPv6
Anda dapat menjalankan Amazon EMR pada beban kerja EKS di cluster IPv6 Amazon EKS untuk memanfaatkan ruang alamat yang jauh lebih besar dan menghindari kehabisan alamat IPv4 saat lingkungan Anda berskala. Kubernetes
Untuk informasi tentang membuat cluster Amazon EKS IPv6, lihat Alamat IPv6 untuk cluster, Pod, dan layanan di Panduan Pengguna Amazon EKS.
Model pengiriman yang didukung
Model pengiriman berikut didukung pada cluster IPv6 Amazon EKS:
-
StartJobRun -
Titik Akhir Interaktif Spark Connect
-
Studio SageMaker Terpadu Amazon
-
Operator Percikan
-
Operator Flink
-
Operator Livy
Model pengajuan yang tidak didukung
Titik akhir Jupyter Enterprise Gateway (JEG) tidak didukung pada cluster IPv6.
Model pengiriman yang tidak memerlukan konfigurasi tambahan
Untuk model pengiriman berikut, Anda dapat mengatur dan mengirimkan beban kerja Amazon EMR pada cluster IPv6 dengan cara yang sama seperti yang Anda lakukan untuk IPv4. Tidak diperlukan konfigurasi tambahan:
-
StartJobRun -
Titik Akhir Interaktif Spark Connect
-
Studio SageMaker Terpadu Amazon
Operator-based model pengajuan
Operator-based model pengiriman memerlukan konfigurasi tambahan untuk kompatibilitas IPv6. Bagian berikut menjelaskan konfigurasi yang diperlukan untuk setiap operator.
Operator Percikan
Untuk menjalankan beban kerja Spark Operator pada cluster IPv6, tambahkan konfigurasi Spark berikut ke spesifikasi AndaSparkApplication. Konfigurasi ini diperlukan untuk semua rilis yang didukung.
spec: sparkConf: "spark.kubernetes.driver.service.ipFamilies": "IPv6"
Konfigurasi ini member Kubernetes itahu klien untuk membuat layanan driver Spark dengan keluarga IP IPv6. Tanpa itu, layanan driver default ke IPv4, yang tidak didukung pada cluster. IPv6-only
Selain itu, untuk emr-7.x rilis, Anda harus menerapkan solusi berikut dengan menyetel variabel lingkungan ini pada penerapan Operator Spark:
KUBERNETES_DISABLE_HOSTNAME_VERIFICATION=true
Setelah menginstal operator Spark, jalankan perintah berikut untuk mengatur variabel lingkungan:
kubectl set env deployment/spark-operator-deployment-name\ KUBERNETES_DISABLE_HOSTNAME_VERIFICATION=true \ -nspark-operator-namespace
Solusi ini mengatasi masalah yang diketahui dengan verifikasi nama host IPv6 aktif. emr-7.x ilis menggunakan versi Kubernetes klien fabric8 yang bergantung pada OkHttp 3.x, yang gagal verifikasi nama host TLS saat menghubungkan ke server Kubernetes API melalui IPv6.
Operator Flink
Untuk menjalankan beban kerja Flink Operator pada cluster IPv6, Anda harus menyetel variabel lingkungan berikut pada pod Operator Flink dan pod pekerjaan Anda: FlinkDeployment
KUBERNETES_DISABLE_HOSTNAME_VERIFICATION=true
Solusi ini mengatasi masalah verifikasi nama host OkHttp 3.x IPv6 yang sama yang dijelaskan di bagian Operator Spark. Untuk informasi selengkapnya, lihat konfigurasi IPv6
Mengatur variabel lingkungan pada pod Operator Flink
Atur variabel lingkungan selamahelm install:
helm installmy-flink-operatorchart\ --set operatorPod.env[0].name=KUBERNETES_DISABLE_HOSTNAME_VERIFICATION \ --set-string operatorPod.env[0].value=true
Mengatur variabel lingkungan pada pod FlinkDeployment pekerjaan Anda
Suntikkan variabel lingkungan melalui template pod di FlinkDeployment YAML Anda:
spec: podTemplate: spec: containers: - name: flink-main-container env: - name: KUBERNETES_DISABLE_HOSTNAME_VERIFICATION value: "true"
Operator Livy
Untuk menjalankan beban kerja Operator Livy pada cluster IPv6, Anda harus mengkonfigurasi dua hal:
-
Anotasi load balancer Dualstack — Tambahkan anotasi berikut saat memasang bagan helm Livy sehingga Load Balancer Controller menyediakan dualstack Network AWS Load Balancer:
helm installmy-livychart\ --set "service.annotations.service\.beta\.kubernetes\.io/aws-load-balancer-ip-address-type=dualstack" -
Konfigurasi IPv6 layanan driver Spark - Sertakan
spark.kubernetes.driver.service.ipFamilieskonfigurasi saat Anda mengirimkan pekerjaan Spark melalui Livy:{ "conf": { "spark.kubernetes.driver.service.ipFamilies": "IPv6" } }
Rilis yang didukung
Tabel berikut menunjukkan dukungan IPv6 berdasarkan model pengiriman dan rilis Amazon EMR. R emr-spark-8.x ilis adalah Spark-only rilis dan tidak termasuk Flink.
| Model pengajuan | emr-7.14.0dan rilis 7.x yang lebih baru |
emr-spark-8.0.0 |
emr-spark-8.1.0+ |
|---|---|---|---|
StartJobRun |
✅ Didukung |
✅ Didukung |
✅ Didukung |
Titik Akhir Interaktif Spark Connect |
✅ Didukung |
✅ Didukung |
✅ Didukung |
Studio SageMaker Terpadu Amazon |
✅ Didukung |
✅ Didukung |
✅ Didukung |
Operator Percikan |
✅ Didukung 1,2 |
❌ Tidak didukung |
✅ Didukung 2 |
Operator Flink |
✅ Didukung 1 |
N/A |
N/A |
Operator Livy |
✅ Didukung 2 |
✅ Didukung 2 |
✅ Didukung 2 |
1 Memer KUBERNETES_DISABLE_HOSTNAME_VERIFICATION lukan solusi yang dijelaskan di bagian sebelumnya untuk model pengiriman ini.
2 Memerlukan konfigurasi tambahan yang dijelaskan di bagian sebelumnya untuk model pengiriman ini.
Pemecahan masalah
Berikut ini adalah kesalahan umum yang mungkin Anda temui saat menjalankan Amazon EMR pada beban kerja EKS di cluster IPv6.
Kesalahan: Nama host atau IP IPv6 yang diharapkan terlampir di []
java.lang.AssertionError: assertion failed: Expected hostname or IPv6 IP enclosed in [] but got 2600:1f14:31b1:d102:d812::2
Penyebab: Anda menggunakan rilis Amazon EMR yang tidak mendukung IPv6. Rilis lebih awal dari emr-7.14.0 tidak menyertakan perbaikan IPv6 yang diperlukan.
Solusi: Ting katkan ke emr-7.14.0 atau yang lebih baru. Lihat Rilis yang didukung daftar lengkap rilis yang didukung.
Kesalahan: SSLPeerUnverifiedException nama host tidak diverifikasi
javax.net.ssl.SSLPeerUnverifiedException: Hostname fd0f:f96c:1438::1 not verified
Penyebab: Pod Operator Spark atau Flink tidak memiliki variabel KUBERNETES_DISABLE_HOSTNAME_VERIFICATION=true lingkungan yang ditetapkan. OkHttp 3.x gagal verifikasi nama host TLS saat server Kubernetes API menggunakan alamat IPv6.
Solusi: Atur KUBERNETES_DISABLE_HOSTNAME_VERIFICATION=true pada pod operator. Lihat Operator Percikan atau Operator Flink.
Kesalahan: Nilai “IPv4" tidak valid tidak dikonfigurasi pada cluster ini
Service "...-driver-svc" is invalid: spec.ipFamilies[0]: Invalid value: "IPv4": not configured on this cluster
Penyebab: Aplikasi Spark tidak menyertakan spark.kubernetes.driver.service.ipFamilies=IPv6 konfigurasi. Tanpa pengaturan ini, Spark mencoba membuat layanan driver dengan IPv4, yang ditolak oleh IPv6-only cluster.
Solusi: Tambahkan "spark.kubernetes.driver.service.ipFamilies": "IPv6" ke sparkConf (untuk Operator Spark) atau ke conf objek dalam pengiriman batch Livy Anda. Lihat Operator Percikan atau Operator Livy.