Menggunakan penyimpanan tanpa server untuk Amazon 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.

Menggunakan penyimpanan tanpa server untuk Amazon EMR Tanpa Server

Dengan Amazon EMR merilis 7.12 dan yang lebih tinggi, gunakan penyimpanan tanpa server saat Anda menjalankan pekerjaan Apache Spark untuk menghilangkan penyediaan disk lokal dan mengurangi biaya pemrosesan data, serta mencegah kegagalan pekerjaan dari kendala kapasitas disk. Penyimpanan tanpa server secara otomatis menangani operasi shuffle, tumpahan disk, dan disk caching 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 menskalakan secara otomatis berdasarkan permintaan beban kerja dan memungkinkan Spark untuk segera melepaskan pekerja komputasi saat idle, sehingga mengurangi biaya komputasi.

Manfaat utama

Penyimpanan tanpa server untuk EMR Tanpa Server memberikan manfaat berikut.

  • Penyimpanan tanpa konfigurasi — Penyimpanan tanpa server menghilangkan kebutuhan untuk mengkonfigurasi jenis dan ukuran disk lokal untuk setiap aplikasi atau pekerjaan. EMR Tanpa Server secara otomatis mengelola operasi data perantara tanpa perencanaan kapasitas.

  • Mencegah kegagalan pekerjaan melalui penskalaan otomatis — Skala kapasitas penyimpanan 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 melepaskan pekerja segera saat idle daripada menyimpannya untuk menyimpan 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.

  • Dukungan kontrol akses berbutir halus — Penyimpanan tanpa server mendukung kontrol akses berbutir halus melalui integrasi AWS Lake Formation.

Mulai menggunakan

Lihat langkah-langkah berikut untuk menggunakan penyimpanan tanpa server untuk EMR Tanpa Server di alur kerja Spark Anda.

  1. Buat aplikasi EMR Tanpa Server

    Buat aplikasi EMR Serverless release 7.12 (atau yang lebih baru) dengan penyimpanan tanpa server diaktifkan dengan menyetel properti spark ke true dalam klasifikasi spark-default. spark.aws.serverlessStorage.enabled

    aws emr-serverless create-application \ --type "SPARK" \ --name my-application \ --release-label emr-7.12.0 \ --runtime-configuration '[{ "classification": "spark-defaults", "properties": { "spark.aws.serverlessStorage.enabled": "true" } }]' \ --region <AWS_REGION>
  2. Mulai pekerjaan Spark

    Mulai pekerjaan yang dijalankan di 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 Tanpa Server di tingkat pekerjaan bahkan ketika 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.aws.serverlessStorage.enabled Spark yang sama ke 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.enabled konfigurasi 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 - Setiap pekerjaan dapat membaca dan menulis hingga total 200 GB data perantara per pekerjaan yang dijalankan. Pekerjaan yang melebihi batas ini akan gagal dengan pesan kesalahan yang menunjukkan bahwa batas penyimpanan tanpa server telah tercapai.

  • Batas waktu eksekusi Job - 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.

  • Kapasitas pra-inisialisasi — Pekerja kapasitas pra-inisialisasi tidak mendukung penyimpanan tanpa server. Ketika 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, 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 v. CPUs

Didukung Wilayah AWS

EMR Tanpa server mendukung penyimpanan tanpa server di wilayah berikut:

  • AS Timur (Virginia Utara)

  • US West (Oregon)

  • Eropa (Irlandia)