Mengonfigurasi jenis instans EMR klaster Amazon dan praktik terbaik untuk instans Spot - Amazon EMR

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

Mengonfigurasi jenis instans EMR klaster Amazon dan praktik terbaik untuk instans Spot

Gunakan panduan di bagian ini untuk membantu Anda menentukan jenis instans, opsi pembelian, dan jumlah penyimpanan yang akan disediakan untuk setiap jenis node dalam sebuah EMR cluster.

Tipe instans apa yang harus Anda gunakan?

Ada beberapa cara untuk menambahkan EC2 instance Amazon ke cluster. Metode yang harus Anda pilih bergantung pada apakah Anda menggunakan konfigurasi grup instance atau konfigurasi armada instance untuk cluster.

  • Grup Instance

    • Tambahkan instans dengan tipe yang sama secara manual ke grup instans inti dan tugas yang ada.

    • Tambahkan grup instans tugas secara manual, yang dapat menggunakan tipe instans yang berbeda.

    • Siapkan penskalaan otomatis di Amazon EMR untuk grup instans, tambahkan dan hapus instans secara otomatis berdasarkan nilai CloudWatch metrik Amazon yang Anda tentukan. Untuk informasi selengkapnya, lihat Gunakan penskalaan EMR klaster Amazon untuk menyesuaikan perubahan beban kerja.

  • Armada Instance

Salah satu cara untuk merencanakan instans klaster Anda adalah dengan menjalankan klaster uji dengan kumpulan sampel data yang representatif dan memantau pemanfaatan simpul dalam klaster. Untuk informasi selengkapnya, lihat Lihat dan pantau EMR klaster Amazon saat melakukan pekerjaan. Cara lain adalah dengan menghitung kapasitas instans yang Anda pertimbangkan dan membandingkan nilai tersebut dengan ukuran data Anda.

Secara umum, tipe node utama, yang menetapkan tugas, tidak memerlukan EC2 instance dengan banyak daya pemrosesan; EC2 Instans Amazon untuk tipe node inti, yang memproses tugas dan menyimpan dataHDFS, memerlukan daya pemrosesan dan kapasitas penyimpanan; EC2 Instans Amazon untuk tipe node tugas, yang tidak menyimpan data, hanya membutuhkan daya pemrosesan. Untuk panduan tentang EC2 instans Amazon yang tersedia dan konfigurasinya, lihatKonfigurasikan jenis EC2 instans Amazon untuk digunakan dengan Amazon EMR.

Pedoman berikut berlaku untuk sebagian besar EMR cluster Amazon.

  • Ada CPU batas v untuk jumlah total EC2 instans Amazon sesuai permintaan yang Anda jalankan di AWS akun per. Wilayah AWS Untuk informasi selengkapnya tentang CPU batas v dan cara meminta peningkatan batas untuk akun Anda, lihat Instans Sesuai Permintaan di Panduan EC2 Pengguna Amazon untuk Instans Linux.

  • Node primer biasanya tidak memiliki persyaratan komputasi yang besar. Untuk cluster dengan sejumlah besar node, atau untuk cluster dengan aplikasi yang secara khusus digunakan pada node primer (JupyterHub, Hue, dll.), node primer yang lebih besar mungkin diperlukan dan dapat membantu meningkatkan kinerja cluster. Misalnya, pertimbangkan untuk menggunakan instans m5.xlarge untuk klaster yang berukuran kecil (50 simpul atau lebih sedikit), dan tingkatkan ke tipe instans yang lebih besar untuk klaster yang lebih besar.

  • Kebutuhan komputasi dari simpul inti dan tugas bergantung pada jenis pemrosesan yang dilakukan aplikasi Anda. Banyak pekerjaan dapat dijalankan pada jenis instance tujuan umum, yang menawarkan kinerja seimbang dalam hal, ruang diskCPU, dan input/output. Cluster intensif komputasi dapat mengambil manfaat dari menjalankan CPU instans Tinggi, yang secara proporsional lebih dari. CPU RAM Aplikasi basis data dan cache memori dapat mengambil manfaat dari menjalankan instans Memori Tinggi. Aplikasi intensif jaringan dan CPU intensif seperti penguraianNLP, dan pembelajaran mesin dapat mengambil manfaat dari berjalan pada instance komputasi cluster, yang menyediakan sumber daya yang tinggi secara proporsional dan peningkatan kinerja jaringan. CPU

  • Jika fase yang berbeda dari klaster Anda memiliki kebutuhan kapasitas yang berbeda, Anda dapat memulai dengan sejumlah kecil simpul inti dan menambah atau mengurangi jumlah simpul tugas untuk memenuhi berbagai persyaratan kapasitas alur kerja Anda.

  • Jumlah data yang dapat Anda proses bergantung pada kapasitas simpul inti dan ukuran data Anda sebagai input, selama pemrosesan, dan sebagai output. Set data input, menengah, dan output semuanya berada di klaster selama pemrosesan.

Kapan Anda harus menggunakan Instans Spot?

Saat meluncurkan klaster di AmazonEMR, Anda dapat memilih untuk meluncurkan instance utama, inti, atau tugas di Instans Spot. Karena setiap jenis grup instans memainkan peran yang berbeda dalam klaster, terdapat implikasi peluncuran dari setiap jenis simpul pada Instans Spot. Anda tidak dapat mengubah opsi pembelian instans saat klaster sedang berjalan. Untuk mengubah dari On-Demand ke Instans Spot atau sebaliknya, untuk node primer dan inti, Anda harus menghentikan cluster dan meluncurkan yang baru. Untuk simpul tugas, Anda dapat meluncurkan grup instans tugas atau armada instans baru, dan menghapus yang lama.

EMRPengaturan Amazon untuk mencegah kegagalan pekerjaan karena pemutusan Instans Spot node tugas

Karena Instans Spot sering digunakan untuk menjalankan node tugas, Amazon EMR memiliki fungsionalitas default untuk menjadwalkan YARN pekerjaan sehingga pekerjaan yang berjalan tidak gagal saat node tugas yang berjalan di Instans Spot dihentikan. Amazon EMR melakukan ini dengan mengizinkan proses master aplikasi berjalan hanya pada node inti. Proses utama aplikasi mengontrol tugas yang sedang berjalan dan harus tetap hidup selama masa tugas.

Amazon EMR merilis 5.19.0 dan yang lebih baru menggunakan fitur label YARN node bawaan untuk mencapai ini. (Versi sebelumnya menggunakan patch kode). Properti dalam klasifikasi yarn-site dan capacity-scheduler konfigurasi dikonfigurasi secara default sehingga YARN capacity-scheduler dan fair-scheduler memanfaatkan label node. Amazon EMR secara otomatis memberi label node inti dengan CORE label, dan menetapkan properti sehingga master aplikasi dijadwalkan hanya pada node dengan CORE label. Memodifikasi properti terkait secara manual dalam klasifikasi konfigurasi situs benang dan penjadwal kapasitas, atau langsung dalam XML file terkait, dapat merusak fitur ini atau memodifikasi fungsi ini.

Amazon EMR mengonfigurasi properti dan nilai berikut secara default. Berhati-hatilah saat mengonfigurasi properti ini.

catatan

Dimulai dengan seri rilis Amazon EMR 6.x, fitur label YARN node dinonaktifkan secara default. Proses utama aplikasi dapat berjalan pada node inti dan tugas secara default. Anda dapat mengaktifkan fitur label YARN node dengan mengonfigurasi properti berikut:

  • yarn.node-labels.enabled: true

  • yarn.node-labels.am.default-node-label-expression: 'CORE'

  • yarn-site (yarn-site.xml) Pada Semua Node

    • yarn.node-labels.enabled: true

    • yarn.node-labels.am.default-node-label-expression: 'CORE'

    • yarn.node-labels.fs-store.root-dir: '/apps/yarn/nodelabels'

    • yarn.node-labels.configuration-type: 'distributed'

  • yarn-site (yarn-site.xml) Pada Node Primer Dan Inti

    • yarn.nodemanager.node-labels.provider: 'config'

    • yarn.nodemanager.node-labels.provider.configured-node-partition: 'CORE'

  • capacity-scheduler (capacity-scheduler.xml) Pada Semua Node

    • yarn.scheduler.capacity.root.accessible-node-labels: '*'

    • yarn.scheduler.capacity.root.accessible-node-labels.CORE.capacity: 100

    • yarn.scheduler.capacity.root.default.accessible-node-labels: '*'

    • yarn.scheduler.capacity.root.default.accessible-node-labels.CORE.capacity: 100

Node utama pada Instance Spot

Node utama mengontrol dan mengarahkan cluster. Ketika berakhir, cluster berakhir, jadi Anda hanya harus meluncurkan node utama sebagai Instans Spot jika Anda menjalankan cluster di mana penghentian mendadak dapat diterima. Ini mungkin terjadi jika Anda menguji aplikasi baru, memiliki klaster yang secara berkala menyimpan data ke penyimpanan eksternal seperti Amazon S3, atau menjalankan klaster di mana biaya lebih penting daripada memastikan penyelesaian klaster.

Saat Anda meluncurkan grup instans utama sebagai Instans Spot, klaster tidak akan dimulai hingga permintaan Instans Spot terpenuhi. Ini adalah sesuatu yang perlu dipertimbangkan ketika memilih harga Spot maksimum Anda.

Anda hanya dapat menambahkan node utama Instance Spot saat meluncurkan cluster. Anda tidak dapat menambah atau menghapus node utama dari cluster yang sedang berjalan.

Biasanya, Anda hanya akan menjalankan node utama sebagai Instance Spot jika Anda menjalankan seluruh cluster (semua grup instance) sebagai Instans Spot.

Simpul inti pada Instans Spot

Node inti memproses data dan menyimpan informasi menggunakanHDFS. Mengakhiri instans inti mengakibatkan risiko kehilangan data. Untuk alasan ini, Anda hanya boleh menjalankan node inti pada Instans Spot ketika kehilangan HDFS data sebagian dapat ditoleransi.

Saat Anda meluncurkan grup instans inti sebagai Instans Spot, Amazon EMR menunggu hingga dapat menyediakan semua instance inti yang diminta sebelum meluncurkan grup instans. Dengan kata lain, jika Anda meminta enam EC2 instans Amazon, dan hanya lima yang tersedia pada atau di bawah harga Spot maksimum Anda, grup instans tidak akan diluncurkan. Amazon EMR terus menunggu hingga keenam EC2 instans Amazon tersedia atau sampai Anda menghentikan cluster. Anda dapat mengubah jumlah Instans Spot dalam grup instans inti untuk menambah kapasitas ke klaster yang sedang berjalan. Untuk informasi selengkapnya tentang bekerja dengan grup instans, dan bagaimana Instans Spot bekerja dengan armada instans, lihat Membuat EMR klaster Amazon dengan armada instans atau grup instans seragam.

Simpul tugas pada Instans Spot

Node tugas memproses data tetapi tidak menyimpan data persistenHDFS. Jika mereka berakhir karena harga Spot telah naik di atas harga Spot maksimum Anda, tidak ada data yang hilang dan hanya akan terjadi efek minim pada klaster Anda.

Saat Anda meluncurkan satu atau beberapa grup instans tugas sebagai Instans Spot, EMR Amazon menyediakan node tugas sebanyak mungkin, menggunakan harga Spot maksimum Anda. Ini berarti bahwa jika Anda meminta grup instans tugas dengan enam node, dan hanya lima Instans Spot yang tersedia pada atau di bawah harga Spot maksimum Anda, Amazon EMR meluncurkan grup instans dengan lima node, menambahkan yang keenam nanti jika memungkinkan.

Meluncurkan grup instans tugas sebagai Instans Spot adalah cara strategis untuk memperluas kapasitas klaster Anda sekaligus meminimalkan biaya. Jika Anda meluncurkan grup instans utama dan inti sebagai Instans Sesuai Permintaan, kapasitasnya dijamin untuk menjalankan klaster. Anda dapat menambahkan instans tugas ke grup instans tugas sesuai kebutuhan, untuk menangani lalu lintas puncak atau mempercepat pemrosesan data.

Anda dapat menambah atau menghapus node tugas menggunakan konsol, AWS CLI, atauAPI. Anda juga dapat menambahkan grup tugas tambahan, tetapi Anda tidak dapat menghapus grup tugas setelah dibuat.

Konfigurasi instans untuk skenario aplikasi

Tabel berikut adalah referensi cepat untuk opsi dan konfigurasi pembelian tipe simpul yang biasanya sesuai untuk berbagai skenario aplikasi. Pilih tautan untuk melihat informasi selengkapnya tentang setiap jenis skenario.

Skenario aplikasi Opsi pembelian simpul utama Opsi pembelian simpul inti Opsi pembelian simpul tugas
klaster dan gudang data yang berjalan lama Sesuai Permintaan Gabungan Sesuai Permintaan atau armada instans Gabungan spot atau armada instans
Beban kerja dengan biaya Spot Spot Spot
Beban kerja data kritis Sesuai Permintaan Sesuai Permintaan Gabungan spot atau armada instans
Pengujian aplikasi Spot Spot Spot

Ada beberapa skenario di mana Instans Spot berguna untuk menjalankan EMR klaster Amazon.

klaster dan gudang data yang berjalan lama

Jika Anda menjalankan EMR klaster Amazon persisten yang memiliki variasi kapasitas komputasi yang dapat diprediksi, seperti gudang data, Anda dapat menangani permintaan puncak dengan biaya lebih rendah dengan Instans Spot. Anda dapat meluncurkan grup instans utama dan inti sebagai Instans Sesuai Permintaan untuk menangani kapasitas normal dan meluncurkan grup instans tugas sebagai Instans Spot untuk menangani persyaratan beban puncak Anda.

Beban kerja dengan biaya

Jika Anda menjalankan klaster sementara yang biayanya lebih rendah lebih penting daripada waktu penyelesaian, dan kehilangan sebagian pekerjaan dapat diterima, Anda dapat menjalankan seluruh klaster (grup instance primer, inti, dan tugas) sebagai Instans Spot untuk mendapatkan keuntungan dari penghematan biaya terbesar.

Beban kerja data kritis

Jika Anda menjalankan klaster yang biayanya lebih rendah lebih penting daripada waktu penyelesaian, tetapi kehilangan sebagian pekerjaan tidak dapat diterima, luncurkan grup instans utama dan inti sebagai Instans Sesuai Permintaan dan lengkapi dengan satu atau beberapa grup instans tugas dari Instans Spot. Menjalankan grup instans utama dan inti sebagai Instans Sesuai Permintaan memastikan bahwa data Anda tetap ada HDFS dan klaster terlindungi dari penghentian karena fluktuasi pasar Spot, sekaligus memberikan penghematan biaya yang timbul dari menjalankan grup instans tugas sebagai Instans Spot.

Pengujian aplikasi

Saat Anda menguji aplikasi baru untuk mempersiapkannya untuk diluncurkan di lingkungan produksi, Anda dapat menjalankan seluruh klaster (grup instance utama, inti, dan tugas) sebagai Instans Spot untuk mengurangi biaya pengujian Anda.

Menghitung HDFS kapasitas yang dibutuhkan dari sebuah cluster

Jumlah HDFS penyimpanan yang tersedia untuk cluster Anda tergantung pada faktor-faktor berikut:

  • Jumlah EC2 instans Amazon yang digunakan untuk node inti.

  • Kapasitas penyimpanan EC2 instans Amazon untuk jenis instans yang digunakan. Untuk informasi selengkapnya tentang volume penyimpanan instans, lihat penyimpanan EC2 instans Amazon Amazon di Panduan EC2 Pengguna Amazon.

  • Jumlah dan ukuran EBS volume Amazon yang melekat pada node inti.

  • Faktor replikasi, yang menjelaskan bagaimana setiap blok data disimpan untuk redundansi HDFS RAID -like. Secara default, faktor replikasi adalah tiga untuk sebuah klaster yang memiliki 10 atau lebih simpul inti, dua untuk sebuah klaster yang memiliki 4-9 simpul inti, dan satu untuk satu kalster yang memiliki tiga atau lebih sedikit simpul.

Untuk menghitung HDFS kapasitas cluster, untuk setiap node inti, tambahkan kapasitas volume penyimpanan instance ke kapasitas EBS penyimpanan Amazon (jika digunakan). Kalikan hasilnya dengan jumlah simpul inti, lalu bagi total dengan faktor replikasi berdasarkan jumlah simpul inti. Misalnya, sebuah cluster dengan 10 node inti tipe i2.xlarge, yang memiliki penyimpanan instans 800 GB tanpa EBS volume Amazon yang terpasang, memiliki total sekitar 2.666 GB yang tersedia untuk HDFS (10 node x 800 GB รท 3 faktor replikasi).

Jika nilai HDFS kapasitas yang dihitung lebih kecil dari data Anda, Anda dapat meningkatkan jumlah HDFS penyimpanan dengan cara berikut:

  • Membuat klaster dengan EBS volume Amazon tambahan atau menambahkan grup instans dengan EBS volume Amazon terlampir ke klaster yang ada

  • Menambahkan lebih banyak simpul inti

  • Memilih jenis EC2 instans Amazon dengan kapasitas penyimpanan yang lebih besar

  • Menggunakan kompresi data

  • Mengubah pengaturan konfigurasi Hadoop untuk mengurangi faktor replikasi

Mengurangi faktor replikasi harus digunakan dengan hati-hati karena mengurangi redundansi HDFS data dan kemampuan cluster untuk pulih dari blok yang hilang atau rusak. HDFS