Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Eksekusi toleran kesalahan di Trino
Eksekusi toleran kesalahan adalah mekanisme di Trino yang dapat digunakan cluster untuk mengurangi kegagalan kueri. Untuk melakukan ini, ia mencoba ulang kueri atau tugas komponennya ketika gagal. Ketika eksekusi toleran kesalahan diaktifkan, data pertukaran perantara di-spooled, dan pekerja lain dapat menggunakannya kembali jika terjadi pemadaman pekerja atau kesalahan lainnya selama eksekusi kueri.
Untuk informasi lebih lanjut tentang eksekusi toleran kesalahan di Trino, lihat Project Tardigrade memberikan kecepatan Trino kepada pengguna awal ETL di blog Trino
Konfigurasi
Eksekusi toleran kesalahan dinonaktifkan secara default. Untuk mengaktifkan fitur, setel properti retry-policy
konfigurasi dalam trino-config
klasifikasi ke salah satu QUERY
atau TASK
berdasarkan kebijakan coba lagi yang diinginkan, sebagai berikut.
{"classification": "trino-config", "properties": { "retry-policy": "
QUERY
" } }
Kebijakan QUERY
coba lagi menginstruksikan Trino untuk mencoba ulang kueri secara otomatis ketika terjadi kesalahan pada node pekerja. Kami menyarankan Anda menggunakan kebijakan QUERY
coba lagi ketika sebagian besar beban kerja untuk klaster Trino terdiri dari banyak kueri kecil.
Kebijakan TASK
coba lagi menginstruksikan Trino untuk mencoba kembali tugas kueri individu jika terjadi kegagalan. Kami merekomendasikan kebijakan ini ketika Trino mengeksekusi kueri batch besar. Cluster dapat lebih efisien mencoba kembali tugas-tugas yang lebih kecil dalam kueri daripada mencoba lagi seluruh kueri.
Manajer pertukaran
Manajer pertukaran menyimpan dan mengelola data spooled untuk eksekusi yang toleran terhadap kesalahan. Ini menggunakan penyimpanan eksternal untuk menyimpan data yang tumpah di luar ukuran buffer dalam memori. Anda dapat mengonfigurasi pengelola pertukaran berbasis sistem file yang menyimpan data spooled di lokasi tertentu, seperti Amazon S3, sistem yang kompatibel dengan Amazon S3, atau sistem yang kompatibel dengan Amazon S3, atau. HDFS
Amazon EMR merilis 6.9.0 dan yang lebih baru menyertakan trino-exchange-manager
klasifikasi untuk mengonfigurasi manajer pertukaran. Rilis ini juga mendukung HDFS spooling.
Menyiapkan manajer pertukaran
Gunakan klasifikasi trino-exchange-manager
konfigurasi untuk mengonfigurasi manajer pertukaran. Klasifikasi ini secara internal membuat file etc/exchange-manager.properties
konfigurasi pada koordinator dan semua node pekerja. Klasifikasi juga menetapkan properti exchange-manager.name
konfigurasi kefilesystem
.
Secara default, Amazon EMR merilis 6.9.0 dan kemudian digunakan HDFS sebagai manajer pertukaran. HDFStersedia di EMR EC2 cluster Amazon, dan spooling terjadi di trino-exchange/
direktori secara default. Untuk menggunakan pengaturan default, atur konfigurasi berikut:
{"Classification": "trino-exchange-manager" }
Jika Anda ingin memberikan lokasi kustom, atur properti berikut dalam trino-exchange-manager
klasifikasi:
-
Atur
exchange.use-local-hdfs
ketrue
. -
Setel
exchange.base-directories
ke lokasi direktori kustom diHDFS, misalnya,exchange.base-directories=/exchange
. Jika direktori kustom belum masukHDFS, Amazon EMR akan membuatnya.
HDFSkonfigurasi manajer pertukaran
Berdasarkan hasil pengujian internal, sebaiknya Anda melakukan spool ke lokal HDFS untuk kinerja kueri yang lebih baik dibandingkan dengan sistem file berbasis cloud lainnya. Anda dapat mengatur konfigurasi berikut untuk manajer pertukaran denganHDFS.
Konfigurasi | Deskripsi | Pengaturan default |
---|---|---|
|
Ukuran blok untuk HDFS penyimpanan |
4 MB |
|
Daftar jalur file yang akan dikonfigurasi HDFS |
Jika |
Pertimbangan dan batasan
-
Jika Anda mengaktifkan eksekusi toleran kesalahan, ini menonaktifkan
write
operasi untuk konektor yang tidak mendukung saat disetel.write
retry-policy
Pada EMR rilis Amazon 6.9.0, konektor Delta Lake, Hive dan Iceberg mendukung operasi dengan.write
retry-policy
-
Jika Anda menggunakan manajer pertukaran dan melakukan operasi I/O yang mahal, kueri Anda mungkin mengalami penurunan kinerja sementara manajer pertukaran memindahkan data perantara ke penyimpanan eksternal.