Eksekusi toleran kesalahan di Trino - Amazon EMR

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 QUERYcoba 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 TASKcoba 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 ke true.

  • 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

exchange.hdfs.block-size

Ukuran blok untuk HDFS penyimpanan

4 MB

hdfs.config.resources

Daftar jalur file yang akan dikonfigurasi HDFS

Jika exchange.use-local-hdfs yatrue, gunakan jalur kecore-site.xml, hdfs-site.xml file; jika tidak null

Untuk properti konfigurasi eksekusi toleran kesalahan tambahan, dan untuk informasi tentang cara menyiapkan Amazon S3 atau sistem lain yang kompatibel dengan Amazon S3 untuk spooling, lihat halaman eksekusi toleransi kesalahan dari dokumentasi Trino.

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.