Mengonfigurasi Tez - Amazon EMR

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

Mengonfigurasi Tez

Anda dapat menyesuaikan Tez dengan menetapkan nilai-nilai menggunakan tez-site konfigurasi klasifikasi, yang mengkonfigurasi pengaturan di tez-site.xml file konfigurasi. Untuk informasi lebih lanjut, lihat TezConfigurationdi dokumentasi Apache Tez. Untuk mengubah Hive atau Pig untuk menggunakan mesin eksekusi Tez, gunakan hive-site dan pig-properties klasifikasi konfigurasi yang sesuai. Contoh ditunjukkan di bawah ini.

Contoh konfigurasi

contoh Contoh: Menyesuaikan tingkat penebangan akar Tez dan pengaturan Tez sebagai mesin eksekusi untuk Hive dan Pig

Contoh create-cluster perintah yang ditunjukkan di bawah ini menciptakan sebuah cluster dengan Tez, Hive, dan Pig diinstal. Perintah referensi file yang disimpan di Amazon S3, myConfig.json, yang menentukan properti untuk tez-site klasifikasi yang menetapkan tez.am.log.level ke DEBUG, dan menetapkan mesin eksekusi untuk Tez untuk Hive dan Pig menggunakan hive-site dan pig-properties klasifikasi konfigurasi.

catatan

Karakter kelanjutan baris Linux (\) disertakan untuk memudahkan pembacaan. Karakter ini bisa dihapus atau digunakan dalam perintah Linux. Untuk Windows, hapus atau ganti dengan tanda sisipan (^).

aws emr create-cluster --release-label emr-7.0.0 \ --applications Name=Tez Name=Hive Name=Pig --ec2-attributes KeyName=myKey \ --instance-type m5.xlarge --instance-count 3 \ --configurations https://s3.amazonaws.com/mybucket/myfolder/myConfig.json --use-default-roles

Isi contoh dari myConfig.json ditunjukkan di bawah ini.

[ { "Classification": "tez-site", "Properties": { "tez.am.log.level": "DEBUG" } }, { "Classification": "hive-site", "Properties": { "hive.execution.engine": "tez" } }, { "Classification": "pig-properties", "Properties": { "exectype": "tez" } } ]
catatan

Dengan Amazon EMR versi 5.21.0 dan yang lebih baru, Anda dapat mengganti konfigurasi klaster dan menentukan klasifikasi konfigurasi tambahan untuk setiap grup instans dalam klaster berjalan. Anda dapat melakukan ini dengan menggunakan konsol Amazon EMR, AWS Command Line Interface (AWS CLI), atau AWS SDK. Untuk informasi selengkapnya, lihat Menyediakan Konfigurasi untuk Grup Instans dalam Klaster Berjalan.

Pembukaan split asinkron Tez

Ketika ada sejumlah besar file kecil di jalur tabel, dan kueri mencoba untuk membaca semuanya, setiap file kecil yang sesuai dengan setiap pemisahan individu digabungkan di bawah satu pemisahan yang dikelompokkan Tez. Sebuah mapper tunggal kemudian memproses pemisahan yang dikelompokkan Tez tunggal. Karena eksekusi sinkron, setiap pemisahan individu di bawah pemisahan yang dikelompokkan akan diproses satu per satu. Ini membutuhkan RecordReader objek untuk memproses pemisahan secara sinkron.

Nama Klasifikasi Deskripsi

tez.grouping.split.init.threads

tez-site

Menentukan jumlah thread daemon yang Tez gunakan untuk pra-memulai dan membuka split. RecordReaders Untuk ACID tabel, nilai maksimum yang didukung tez.grouping.split.init.threads adalah1.

tez.grouping.split.init.recordreaders

tez-site

Menentukan jumlah RecordReaders untuk tetap diinisialisasi oleh thread daemon. Ini dapat membantu ketika pemisahan yang dikelompokkan Tez berisi sejumlah besar. InputSplits Inisialisasi RecordReaders untuk memproses pemisahan input tersebut dapat dilakukan secara asinkron dengan utas daemon alih-alih pemrosesan berurutan.

Benchmarking untuk pembukaan split asinkron Tez

Kami menggunakan lingkungan dan konfigurasi berikut untuk membandingkan kemampuan pembukaan terpisah asinkron Tez:

  • Lingkungan benchmark — Cluster EMR Amazon dengan 1 node utama yang m5.16xlarge menggunakan, dan 16 node inti yang digunakan. m5.16xlarge

  • Konfigurasi benchmark — Untuk mensimulasikan skenario untuk pembandingan di mana sejumlah besar pemisahan input berada dalam satu pemisahan dikelompokkan Tez, diatur ke. tez.grouping.split-count 1

  • Tabel yang digunakan untuk benchmarking - Tabel berisi 200 partisi, dengan masing-masing partisi berisi satu file. Benchmark dilakukan ketika tabel itu berisi CSV file, dan ketika tabel itu berisi file parket. Kueri sarang untuk benchmarking: SELECT COUNT(*) dari tabel sepuluh kali, dan ambil runtime rata-rata.

  • Konfigurasi untuk mengaktifkan pembukaan pemisahan async Tez - Sebagai berikut:

    • tez.grouping.split.init.threads = 4

    • tez.grouping.split.init.recordreaders = 10

Set data Fitur dinonaktifkan (baseline) Fitur diaktifkan Perbaikan

CSVdataset

90.26 detik

79.20 detik

12,25%

Parquetdataset

54,67 detik

42,23 detik

22,75%