Praktik terbaik untuk konfigurasi klaster - Amazon EMR

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

Praktik terbaik untuk konfigurasi klaster

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

Tipe instans apa yang harus Anda gunakan?

Ada beberapa cara untuk menambahkan instans Amazon EC2 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, menambahkan dan menghapus instance secara otomatis berdasarkan nilai metrik CloudWatch Amazon yang Anda tentukan. Untuk informasi selengkapnya, lihat Gunakan penskalaan cluster.

  • Armada Instance

    • Tambahkan satu armada instans tugas.

    • Ubah kapasitas target untuk Instans Sesuai Permintaan dan Spot untuk armada instans inti dan tugas yang ada. Untuk informasi selengkapnya, lihat Mengkonfigurasi armada instans.

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 Melihat dan memantau suatu klaster. 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 instans EC2 dengan banyak daya pemrosesan; Instans Amazon EC2 untuk tipe node inti, yang memproses tugas dan menyimpan data dalam HDFS, memerlukan daya pemrosesan dan kapasitas penyimpanan; Instans Amazon EC2 untuk tipe node tugas, yang tidak menyimpan data, hanya membutuhkan daya pemrosesan. Untuk panduan tentang instans Amazon EC2 yang tersedia dan konfigurasinya, lihat. Konfigurasikan instans Amazon EC2

Panduan berikut berlaku untuk sebagian besar klaster Amazon EMR.

  • Ada batas vCPU untuk jumlah total instans Amazon EC2 sesuai permintaan yang Anda jalankan pada akun per. AWS Wilayah AWSUntuk informasi selengkapnya tentang batas vCPU dan cara meminta peningkatan batas untuk akun Anda, lihat Instans Sesuai Permintaan di Panduan Pengguna Amazon EC2 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. Berbagai pekerjaan dapat dijalankan pada tipe instans tujuan umum, yang menawarkan performa seimbang dalam hal CPU, ruang disk, dan input/output. Klaster intensif komputasi dapat mengambil manfaat dari menjalankan instans CPU Tinggi, yang memiliki CPU lebih banyak secara proporsional daripada RAM. Aplikasi basis data dan cache memori dapat mengambil manfaat dari menjalankan instans Memori Tinggi. Aplikasi intensif jaringan dan intensif CPU seperti parsing, NLP, dan machine learning dapat mengambil manfaat dari menjalankan pada instans komputasi klaster, yang menyediakan sumber daya CPU tinggi secara proporsional dan peningkatan performa jaringan.

  • 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 Amazon EMR, 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.

Pengaturan Amazon EMR untuk mencegah kegagalan tugas karena pengakhiran Instans Spot simpul tugas

Karena Instans Spot sering digunakan untuk menjalankan simpul tugas, Amazon EMR memiliki fungsionalitas default untuk menjadwalkan tugas YARN sehingga tugas yang sedang berjalan tidak mengalami kegagalan saat simpul tugas yang berjalan pada Instans Spot diakhiri. Amazon EMR melakukan ini dengan mengizinkan proses utama aplikasi berjalan hanya pada simpul 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 node YARN bawaan untuk mencapai ini. (Versi sebelumnya menggunakan patch kode). Properti dalam klasifikasi konfigurasi yarn-site dan capacity-scheduler dikonfigurasi secara default sehingga YARN capacity-scheduler dan fair-scheduler memanfaatkan label simpul. Amazon EMR secara otomatis melabeli simpul inti dengan label CORE, dan menetapkan properti sehingga utama aplikasi dijadwalkan hanya pada simpul dengan label INTI. Mengubah properti terkait secara manual dalam klasifikasi konfigurasi yarn-site dan capacity-scheduler, atau secara langsung dalam file XML terkait, dapat merusak fitur ini atau mengubah fungsionalitas ini.

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

catatan

Dimulai dengan Amazon EMR seri rilis 6.x, fitur label simpul YARN dinonaktifkan secara default. Proses utama aplikasi dapat berjalan pada node inti dan tugas secara default. Anda dapat mengaktifkan fitur label simpul YARN dengan mengkonfigurasi 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

Simpul inti memproses data dan menyimpan informasi menggunakan HDFS. Mengakhiri instans inti mengakibatkan risiko kehilangan data. Karena alasan ini, Anda hanya boleh menjalankan simpul inti pada Instans Spot jika kehilangan sebagian data HDFS dapat ditoleransi.

Saat Anda meluncurkan grup instans inti sebagai Instans Spot, Amazon EMR menunggu hingga dapat menyediakan semua instans inti yang diminta sebelum meluncurkan grup instans. Dengan kata lain, jika Anda meminta enam instans Amazon EC2, dan hanya lima yang tersedia pada atau di bawah harga Spot maksimum Anda, maka grup instans tidak akan diluncurkan. Amazon EMR terus menunggu hingga keenam instans Amazon EC2 tersedia atau hingga Anda mengakhiri klaster. 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 sebuah klaster dengan armada instan atau grup instans seragam.

Simpul tugas pada Instans Spot

Simpul tugas memproses data tetapi tidak menyimpan data persisten dalam HDFS. 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, Amazon EMR menyediakan simpul tugas sebanyak mungkin, menggunakan harga Spot maksimum Anda. Ini berarti bahwa jika Anda meminta grup instans tugas dengan enam simpul, dan hanya lima Instans Spot yang tersedia pada atau di bawah harga Spot maksimum Anda, Amazon EMR akan meluncurkan grup instans dengan lima simpul lalu 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 menambahkan atau menghapus node tugas menggunakan konsol, AWS CLI, atau API. 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 klaster Amazon EMR.

klaster dan gudang data yang berjalan lama

Jika Anda menjalankan klaster Amazon EMR persisten yang memiliki variasi kapasitas komputasi yang dapat diprediksi, seperti gudang data, Anda dapat menangani permintaan puncak dengan biaya lebih rendah menggunakan 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 disimpan dalam 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 kapasitas HDFS yang dibutuhkan dari sebuah klaster

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

  • Jumlah instans Amazon EC2 yang digunakan untuk node inti.

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

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

  • Faktor replikasi, yang mana menjelaskan bagaimana setiap blok data disimpan dalam HDFS untuk redundansi seperti RAID. 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 kapasitas HDFS sebuah cluster, untuk setiap node inti, tambahkan kapasitas volume penyimpanan instans ke kapasitas penyimpanan Amazon EBS (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 volume Amazon EBS yang terpasang, memiliki total sekitar 2.666 GB yang tersedia untuk HDFS (10 node x 800 GB รท 3 faktor replikasi).

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

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

  • Menambahkan lebih banyak simpul inti

  • Memilih jenis instans Amazon EC2 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 dapat mengurangi redundansi data HDFS dan kemampuan klaster untuk memulihkan dari blok HDFS yang hilang atau rusak.