View a markdown version of this page

Konfigurasikan subnet IPv6 untuk aplikasi EMR Tanpa Server - Amazon EMR

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

Konfigurasikan subnet IPv6 untuk aplikasi EMR Tanpa Server

Dengan Amazon EMR Serverless, Anda dapat menjalankan pekerjaan Apache Spark dan Apache Hive melalui IPv6 di Amazon Virtual Private Cloud (Amazon VPC). Jika Anda menyediakan dual-stack (IPv4 dan IPv6) atau subnet IPv6-only , EMR Serverless menjalankan pekerjaan Anda menggunakan mode pengalamatan subnet tersebut. Pekerjaan Anda kemudian dapat mencapai titik akhir IPv6 di VPC dan titik akhir IPv6 eksternal Anda. IPv6-only subnet berjalan melalui IPv6 secara otomatis. Untuk subnet dual-stack, Anda mengaktifkan IPv6 dengan properti konfigurasi, seperti yang dijelaskan dalam. Mengkonfigurasi properti IPv6

Memahami manfaat utama

Menjalankan aplikasi EMR Tanpa Server melalui IPv6 memberikan manfaat berikut.

  • Ruang alamat yang lebih besar — IPv6 menyediakan ruang alamat yang jauh lebih besar daripada IPv4, yang membantu Anda menghindari kelelahan alamat IPv4 di VPC dan subnet yang menjalankan banyak pekerja.

  • Dual-stack dan IPv6-only jaringan — Jalankan pekerjaan pada subnet dual-stack yang menggunakan IPv4 dan IPv6, atau pada IPv6-only subnet, untuk memenuhi standar jaringan dan persyaratan kepatuhan yang membutuhkan IPv6.

  • Konektivitas ke titik akhir IPv6 — Pekerjaan Spark dan Hive Anda dapat mencapai titik akhir dan layanan IPv6 di VPC dan titik akhir IPv6 eksternal Anda.

  • Pengaktifan fleksibel — IPv6-only subnet berjalan melalui IPv6 secara otomatis. Untuk subnet dual-stack, Anda mengaktifkan IPv6 dengan properti konfigurasi tunggal, sehingga Anda mengontrol kapan IPv6 berlaku.

Bagaimana EMR Tanpa Server menentukan mode pengalamatan

EMR Tanpa Server menentukan mode pengalamatan aplikasi Anda dari subnet yang Anda berikan.

  • IPv4-only subnet — Aplikasi berjalan IPv4-only, persis seperti sebelumnya. Tidak ada perubahan perilaku untuk aplikasi yang ada.

  • Dual-stack subnet — Aplikasi berjalan IPv4-only kecuali Anda mengaktifkan IPv6 dengan properti konfigurasi yang dijelaskan dalam. Mengkonfigurasi properti IPv6 Saat Anda mengaktifkan IPv6, aplikasi dapat menggunakan IPv4 dan IPv6.

  • IPv6-only subnet — Aplikasi berjalan IPv6-only. Ini tersedia di semua versi rilis.

Ketika Anda menyediakan lebih dari satu subnet, EMR Serverless menjalankan seluruh aplikasi dalam satu mode pengalamatan yang didukung oleh setiap subnet dalam set. Jika subnet tidak memiliki mode umum, EMR Tanpa Server menolak permintaan. Kasus-kasus berikut menjelaskan jenis subnet yang dapat dikandung satu set, dalam jumlah berapa pun dan dalam kombinasi apa pun.

  • IPv4-only dan IPv6-only - EMR Tanpa Server menolak set dengan kesalahan validasi.

  • IPv6-only dan dual-stack — Set berjalan IPv6-only, termasuk subnet dual-stack apa pun di set. Pastikan setiap subnet dalam set, termasuk subnet dual-stack, memenuhi prasyarat di. Memenuhi prasyarat VPC dan subnet

  • IPv4-only dan dual-stack — Set berjalan IPv4-only, termasuk subnet dual-stack apa pun di set.

EMR Tanpa Server mengevaluasi mode pengalamatan dari subnet dan konfigurasi saat ini setiap kali aplikasi dimulai. Aplikasi yang sedang berjalan menjaga mode yang dimulai, sehingga perubahan tidak berlaku sampai awal berikutnya.

Untuk definisi IPv4-only, dual-stack, dan IPv6-only subnet, lihat Subnet untuk VPC Anda di Panduan Pengguna Amazon Virtual Private Cloud.

Memenuhi prasyarat VPC dan subnet

Anda bertanggung jawab untuk mengonfigurasi VPC dan subnet Anda sehingga lalu lintas IPv6 dapat mencapai penyimpanan data Anda dan AWS layanan yang digunakan pekerjaan Anda. Konfigurasikan yang berikut ini di VPC Anda sendiri sebelum Anda menjalankan pekerjaan IPv6.

Gunakan Panduan Pengguna Amazon Virtual Private Cloud untuk petunjuk langkah demi langkah.

Mengkonfigurasi IPv6 untuk aplikasi Anda

Anda mengonfigurasi IPv6 saat membuat aplikasi, atau mengubahnya nanti dengan memperbarui aplikasi yang ada. Dalam kedua kasus, EMR Tanpa Server memperoleh mode pengalamatan dari subnet di, seperti yang dijelaskan dalam. --network-configuration Bagaimana EMR Tanpa Server menentukan mode pengalamatan Untuk subnet dual-stack, Anda juga mengaktifkan IPv6 dengan properti yang dijelaskan dalamMengkonfigurasi properti IPv6; untuk IPv6-only subnet, tidak diperlukan properti.

Untuk membuat aplikasi

Prosedur berikut membuat aplikasi Spark yang menggunakan subnet dual-stack dan mengaktifkan IPv6. Sebelum Anda mulai, pastikan bahwa setiap subnet yang Anda rencanakan untuk digunakan memenuhi persyaratan diMemenuhi prasyarat VPC dan subnet.

AWS CLI Perintah berikut membuat aplikasi Spark dengan subnet dual-stack dan mengaktifkan IPv6:

aws emr-serverless create-application \ --type SPARK \ --name my-application-name \ --release-label emr-7.14.0 \ --network-configuration '{ "subnetIds": ["subnet-id-1", "subnet-id-2"], "securityGroupIds": ["security-group-id"] }' \ --runtime-configuration '[ { "classification": "spark-defaults", "properties": { "spark.emr-serverless.networking.ipv6.enabled": "true" } } ]' \ --region AWS_REGION

Ganti nilai-nilai berikut:

  • my-application-name— Nama yang ingin Anda berikan pada aplikasi Anda.

  • subnet-id-1, subnet-id-2 — ID dari subnet dual-stack yang ingin Anda gunakan.

  • security-group-id— ID grup keamanan yang ingin Anda lampirkan.

  • AWS_REGION— Wilayah AWS Tempat Anda ingin membuat aplikasi.

Pada subnet dual-stack, pekerjaan menggunakan IPv4 secara default. Agar Spark lebih memilih IPv6, atur properti preferensi mesin yang dijelaskan dalam. Mengkonfigurasi properti IPv6 Untuk aplikasi Hive, gunakan--type HIVE, hive-site klasifikasi, dan hive.emr-serverless.networking.ipv6.enabled properti.

catatan

Untuk IPv6-only subnet, hilangkan--runtime-configuration. Aplikasi berjalan melalui IPv6 secara otomatis, dan Anda tidak mengatur properti enablement atau engine-preference.

Untuk memperbarui aplikasi yang ada

  1. Hentikan aplikasi jika sedang berjalan.

  2. Perbarui aplikasi saat berada di STOPPED negara bagian CREATED atau. Sediakan subnet yang Anda inginkan--network-configuration, dan untuk subnet dual-stack sertakan properti enablement di. --runtime-configuration Parameter yang tidak Anda sertakan mempertahankan nilainya saat ini.

    AWS CLI Perintah berikut memperbarui aplikasi dengan subnet baru dan properti enablement:

    aws emr-serverless update-application \ --application-id application-id \ --network-configuration '{ "subnetIds": ["subnet-id-1", "subnet-id-2"], "securityGroupIds": ["security-group-id"] }' \ --runtime-configuration '[ { "classification": "spark-defaults", "properties": { "spark.emr-serverless.networking.ipv6.enabled": "true" } } ]' \ --region AWS_REGION

    Ganti nilai-nilai berikut:

    • application-id— ID aplikasi yang ingin Anda perbarui.

    • subnet-id-1, subnet-id-2 — ID subnet yang ingin Anda gunakan.

    • security-group-id— ID grup keamanan yang ingin Anda lampirkan.

    • AWS_REGION— Aplikasi. Wilayah AWS

  3. Mulai aplikasi. EMR Tanpa Server menerapkan mode pengalamatan di awal.

Mengkonfigurasi properti IPv6

Properti berikut mengontrol IPv6 untuk aplikasi dan pekerjaan Anda. Tetapkan properti enablement di tingkat aplikasi diruntimeConfiguration. Tetapkan properti preferensi mesin di tingkat pekerjaan, di sparkSubmitParameters untuk Spark atau dengan untuk Hive. --hiveconf

Engine Properti Di mana Anda mengaturnya Default Berlaku untuk Catatan
Spark spark.emr-serverless.networking.ipv6.enabled spark-defaults(aplikasiruntimeConfiguration) false Dual-stack Mengaktifkan IPv6 pada subnet dual-stack.
Spark spark.emr-serverless.driverEnv.SPARK_PREFER_IPV6 sparkSubmitParameters(pekerjaan) false Dual-stack (opsional) Membuat driver Spark lebih memilih IPv6. Atur secara otomatis pada IPv6-only subnet. Jangan diatur pada IPv4-only subnet.
Spark spark.executorEnv.SPARK_PREFER_IPV6 sparkSubmitParameters(pekerjaan) false Dual-stack (opsional) Membuat pelaksana Spark lebih suka IPv6. Atur secara otomatis pada IPv6-only subnet. Jangan diatur pada IPv4-only subnet.
Hive hive.emr-serverless.networking.ipv6.enabled hive-site(aplikasiruntimeConfiguration) false Dual-stack Sama seperti properti pemberdayaan Spark, untuk aplikasi Hive.
Hive JAVA_TOOL_OPTIONS=-Djava.net.preferIPv6Addresses=true --hiveconf(pekerjaan) Tidak diatur Dual-stack (opsional) Membuat Hive lebih suka IPv6. Atur secara otomatis pada IPv6-only subnet. Jangan diatur pada IPv4-only subnet.

Pada subnet dual-stack, IPv4 dan IPv6 tersedia dan mesin menggunakan IPv4 secara default. Agar mesin lebih menyukai IPv6, atur properti preferensi mesin untuk mesin Anda. Pada IPv6-only subnet, EMR Serverless menetapkan preferensi IPv6 untuk Anda, sehingga Anda tidak mengatur properti ini. Pada IPv4-only subnet, jangan atur properti preferensi mesin; tidak ada IPv6 yang tersedia, jadi memilih IPv6 menyebabkan pekerjaan gagal.

Contoh berikut menetapkan mesin Spark untuk memilih IPv6 dalam pekerjaan. sparkSubmitParameters

--conf spark.emr-serverless.driverEnv.SPARK_PREFER_IPV6=true --conf spark.executorEnv.SPARK_PREFER_IPV6=true
penting

Jangan memaksa tumpukan IPv4 di JVM (misalnya, dengan mengatur spark.driver.extraJavaOptions atauspark.executor.extraJavaOptions) pada mode -Djava.net.preferIPv4Stack=true pengalamatan apa pun.

Untuk informasi selengkapnya tentang mendeklarasikan runtimeConfiguration di tingkat aplikasi, lihat Konfigurasi aplikasi default untuk EMR Tanpa Server. Untuk informasi selengkapnya tentang meneruskan konfigurasi engine, lihat Menggunakan konfigurasi Spark saat menjalankan pekerjaan EMR Tanpa Server dan Menggunakan konfigurasi Hive saat menjalankan pekerjaan EMR Tanpa Server.

Pertimbangan dan batasan

  • Mode pengalamatan tidak dapat diatur melalui API. Untuk mengubahnya, ubah subnet Anda (atau properti spark.emr-serverless.networking.ipv6.enabled opt-in untuk subnet dual-stack) dan restart aplikasi.

  • IPv4-only dan IPv6-only subnet tidak dapat dicampur dalam satu aplikasi.

  • Kode pekerjaan Anda dan SDK, driver, atau titik akhir apa pun yang digunakannya harus mendukung IPv6 saat aplikasi berjalan. IPv6-only Dengan EMR Tanpa Server, Anda mendapatkan konektivitas IPv6; itu tidak mengubah kode aplikasi Anda atau titik akhir pihak ketiga.

Pemecahan masalah

Topik ini membantu Anda mendiagnosis dan menyelesaikan masalah jaringan IPv6 umum dengan aplikasi EMR Tanpa Server, termasuk kegagalan resolusi DNS, alamat IPv6 yang ditetapkan secara otomatis yang hilang, penggunaan IPv4 yang tidak terduga, dan kesalahan validasi subnet. Berikut ini adalah gejala yang mungkin Anda lihat saat menjalankan pekerjaan IPv6, dan apa yang harus dilakukan untuk masing-masing pekerjaan.

Kesalahan resolusi DNS () UnknownHostException

Ini dapat terjadi pada IPv6-only aplikasi ketika subnet kehilangan DNS64 atau jalur keluar NAT64, sehingga pekerjaan tidak dapat mencapai titik akhir yang mereka butuhkan. Aktifkan DNS64 dan sediakan gateway NAT untuk NAT64 di setiap subnet dalam aplikasi, seperti yang dijelaskan sebelumnya dalam topik ini di bawah. Memenuhi prasyarat VPC dan subnet

Dual-stack subnet tidak menetapkan alamat IPv6 secara otomatis

Ini dapat terjadi ketika subnet memiliki blok CIDR IPv6 terkait tetapi tidak secara otomatis menetapkan alamat IPv6, sehingga aplikasi tidak menerima konektivitas IPv6 yang diharapkannya. Aktifkan auto-assign alamat IPv6 untuk subnet, seperti yang dijelaskan sebelumnya dalam topik ini, dan kemudian mulai pekerjaan baru. Pengaturan hanya berlaku untuk sumber daya yang dibuat setelah Anda mengubahnya.

Job berjalan melalui IPv4 pada aplikasi dual-stack

Pada subnet dual-stack, ini bisa terjadi karena salah satu dari dua alasan. Pertama, Anda tidak mengaktifkan IPv6 dengan properti konfigurasi, sehingga aplikasi berjalan. IPv4-only Kedua, Anda mengaktifkan IPv6 tetapi tidak mengatur mesin untuk memilihnya, sehingga mesin menggunakan IPv4. Konfirmasikan properti pemberdayaan dan properti preferensi mesin di. Mengkonfigurasi properti IPv6

Job gagal dengan UnresolvedAddressException

Ini bisa terjadi ketika pekerjaan memaksa tumpukan IPv4 di JVM. Hapus -Djava.net.preferIPv4Stack=true (dan setelan setara apa pun) dari konfigurasi pekerjaan Anda, dan kirimkan kembali pekerjaan tersebut. Lihat Mengkonfigurasi properti IPv6.

Permintaan gagal dengan kesalahan validasi subnet yang tidak kompatibel

Ini dapat terjadi ketika Anda menyediakan subnet yang tidak dapat berjalan bersama, seperti IPv4-only subnet yang dicampur dengan IPv6-only subnet, atau properti spark.emr-serverless.networking.ipv6.enabled opt-in yang disetel ke true sementara aplikasi menyertakan subnet. IPv4-only Tinjau subnet AndaBagaimana EMR Tanpa Server menentukan mode pengalamatan, sesuaikan atau properti keikutsertaan, dan coba lagi permintaan.