Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan penyimpanan tanpa server untuk Amazon EMR Serverless
Dengan Amazon EMR rilis 7.12 dan yang lebih tinggi, gunakan penyimpanan tanpa server saat menjalankan tugas Apache Spark untuk menghilangkan penyediaan disk lokal dan mengurangi biaya pemrosesan data, serta mencegah kegagalan pekerjaan akibat kendala kapasitas disk. Penyimpanan tanpa server secara otomatis menangani operasi shuffle, tumpahan disk, dan cache disk untuk pekerjaan Anda tanpa memerlukan konfigurasi kapasitas dan menyimpan data perantara tanpa biaya. Amazon EMR Serverless menyimpan data perantara dalam penyimpanan tanpa server yang dikelola sepenuhnya yang diskalakan secara otomatis berdasarkan tuntutan beban kerja dan memungkinkan Spark melepaskan pekerja komputasi segera saat idle, sehingga mengurangi biaya komputasi.
Manfaat utama
Penyimpanan tanpa server untuk EMR Serverless memberikan manfaat berikut.
-
Zero-configuration penyimpanan — Penyimpanan tanpa server menghilangkan kebutuhan untuk mengkonfigurasi jenis dan ukuran disk lokal untuk setiap aplikasi atau pekerjaan. EMR Serverless secara otomatis mengelola operasi data perantara tanpa perencanaan kapasitas.
-
Mencegah kegagalan pekerjaan melalui penskalaan otomatis — Kapasitas penyimpanan diskalakan secara otomatis berdasarkan permintaan beban kerja, mencegah kegagalan pekerjaan karena kapasitas disk yang tidak mencukupi.
-
Mengurangi biaya pemrosesan data — Penyimpanan tanpa server mengurangi biaya pemrosesan melalui dua mekanisme. Pertama, penyimpanan data perantara disediakan tanpa biaya — Anda hanya membayar untuk sumber daya komputasi dan memori. Kedua, penyimpanan terpisah dengan alokasi sumber daya dinamis Spark memungkinkan Spark untuk segera melepaskan pekerja saat idle daripada menyimpannya untuk mempertahankan data perantara pada disk lokal. Hal ini memungkinkan scale-out dan scale-in yang lebih cepat per tahap Spark, mengurangi biaya komputasi untuk pekerjaan di mana tahap selanjutnya membutuhkan lebih sedikit pekerja daripada tahap awal.
-
Penyimpanan terenkripsi dengan isolasi tingkat pekerjaan — Semua data perantara dienkripsi saat transit dan diam dengan isolasi tingkat pekerjaan yang ketat.
-
Fine-grained dukungan kontrol akses - Penyimpanan tanpa server mendukung kontrol akses halus melalui integrasi AWS Lake Formation.
Memulai
Lihat langkah-langkah berikut untuk menggunakan penyimpanan tanpa server untuk EMR Serverless di alur kerja Spark Anda.
-
Buat aplikasi EMR Serverless
Buat aplikasi EMR Serverless release 7.12 (atau yang lebih baru) dengan penyimpanan tanpa server diaktifkan dengan menyetel properti spark
spark.aws.serverlessStorage.enabledke true dalam klasifikasi spark-dedefault.aws emr-serverless create-application \ --type "SPARK" \ --namemy-application\ --release-label emr-7.12.0 \ --runtime-configuration '[{ "classification": "spark-defaults", "properties": { "spark.aws.serverlessStorage.enabled": "true" } }]' \ --region<AWS_REGION> -
Memulai pekerjaan Spark
Mulai menjalankan pekerjaan pada aplikasi Anda. Penyimpanan tanpa server untuk EMR Serverless secara otomatis menangani operasi data perantara seperti shuffle untuk pekerjaan Anda.
aws emr-serverless start-job-run \ --application-id<application-id>\ --execution-role-arn<job-role-arn>\ --job-driver '{ "sparkSubmit": { "entryPoint": "s3://<bucket>/script.py", "sparkSubmitParameters": "--conf spark.executor.cores=4 --conf spark.executor.memory=20g --conf spark.driver.cores=4 --conf spark.driver.memory=8g --conf spark.executor.instances=10" } }'Anda juga dapat mengaktifkan penyimpanan tanpa server untuk EMR Serverless di tingkat pekerjaan meskipun tidak diaktifkan di tingkat aplikasi. Ini akan meluncurkan node pekerja yang diaktifkan dengan penyimpanan tanpa server untuk memproses pekerjaan Anda. Anda juga dapat menonaktifkan penyimpanan tanpa server untuk pekerjaan tertentu dengan menyetel properti Spark yang sama
spark.aws.serverlessStorage.enabledke false.# Turn on serverless storage for EMR serverless for a specific job aws emr-serverless start-job-run \ --application-id<application-id>\ --execution-role-arn<job-role-arn>\ --job-driver '{ "sparkSubmit": { "entryPoint": "/usr/lib/spark/examples/jars/spark-examples.jar", "entryPointArguments": ["1"], "sparkSubmitParameters": "--class org.apache.spark.examples.SparkPi --conf spark.aws.serverlessStorage.enabled": "true" } }'catatan
Untuk terus menggunakan penyediaan disk lokal tradisional, hilangkan
spark.aws.serverlessStorage.enabledkonfigurasi atau atur ke false.
Pertimbangan dan batasan
-
Versi rilis — Penyimpanan tanpa server didukung pada Amazon EMR rilis 7.12 dan yang lebih baru.
-
Batas volume data — Dengan emr-7.12, emr-7.13, dan emr-spark-8.0, setiap pekerjaan dapat membaca dan menulis hingga 200 GB data perantara per pekerjaan yang dijalankan. Untuk emr-7.14 dan yang lebih baru, termasuk emr-spark-8.1, batas ini meningkat menjadi 1 TB, kecuali di Wilayah yang disebutkan dengan batas 200 GB di Didukung di bawah ini. Wilayah AWS Pekerjaan yang melebihi batas yang berlaku akan gagal dengan pesan kesalahan yang menunjukkan bahwa batas penyimpanan tanpa server telah tercapai.
-
Batas waktu eksekusi pekerjaan — Penyimpanan tanpa server mendukung pekerjaan dengan batas waktu eksekusi hingga 24 jam. Pekerjaan yang dikonfigurasi untuk batas waktu eksekusi yang lebih lama akan gagal dengan pesan kesalahan.
-
Pre-initialized kapasitas — pekerja Pre-initialized kapasitas tidak mendukung penyimpanan tanpa server. Saat Anda mengonfigurasi kapasitas pra-inisialisasi, itu hanya akan digunakan oleh pekerjaan yang secara eksplisit menonaktifkan penyimpanan tanpa server di tingkat pekerjaan. Pekerjaan dengan penyimpanan tanpa server diaktifkan akan selalu menyediakan pekerja baru sesuai permintaan dan tidak akan menggunakan kapasitas pra-inisialisasi apa pun, terlepas dari konfigurasi di tingkat aplikasi.
-
Jenis beban kerja — Penyimpanan tanpa server tidak didukung untuk streaming dan pekerjaan interaktif.
-
Konfigurasi pekerja — Penyimpanan tanpa server tidak didukung untuk pekerja dengan 1 atau 2 vCPU.
Didukung Wilayah AWS
EMR Serverless mendukung penyimpanan tanpa server di wilayah berikut:
-
Timur AS (N. Virginia)
-
AS Timur (Ohio)
-
AS Barat (California Utara)
-
AS Barat (Oregon)
-
Asia Pasifik (Hong Kong)
-
Asia Pasifik (Jakarta)
-
Asia Pasifik (Mumbai)
-
Asia Pasifik (Osaka)
-
Asia Pasifik (Seoul)
-
Asia Pasifik (Singapura)
-
Asia Pasifik (Sydney)
-
Asia Pasifik (Tokyo)
-
Kanada (Pusat)
-
Eropa (Frankfurt)
-
Eropa (Irlandia)
-
Eropa (Spanyol)
-
Eropa (Stockholm)
-
Amerika Selatan (Sao Paulo)
-
Afrika (Cape Town) - batas 200 GB
-
Asia Pasifik (Melbourne) — batas 200 GB
-
Kanada Barat (Calgary) - batas 200 GB
-
Eropa (London) - batas 200 GB
-
Eropa (Milan) - batas 200 GB
-
Eropa (Paris) - batas 200 GB
-
Eropa (Zurich) - batas 200 GB