

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

# Mengonfigurasi Tez
<a name="tez-configure"></a>

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 [TezConfiguration](https://tez.apache.org/releases/0.8.2/tez-api-javadocs/configs/TezConfiguration.html)di 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
<a name="tez-configure-example"></a>

**Example 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.  
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.13.0}} \
--applications Name=Tez Name=Hive Name=Pig --ec2-attributes KeyName={{myKey}} \
--instance-type m5.xlarge --instance-count 3 \
--configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/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 melakukannya dengan menggunakan konsol EMR Amazon, AWS Command Line Interface (AWS CLI), atau SDK AWS . Untuk informasi selengkapnya, lihat [Menyediakan Konfigurasi untuk Grup Instans dalam Klaster Berjalan](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps-running-cluster.html).

## Pembukaan split asinkron Tez
<a name="tez-configure-async"></a>

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.

Amazon EMR 6.15.0 memperkenalkan konfigurasi yang dapat Anda tentukan untuk membuka pemisahan input secara asinkron dalam pemisahan yang dikelompokkan Tez. Fitur ini diprakarsai oleh [TEZ-4397](https://issues.apache.org/jira/browse/TEZ-4397), tetapi memiliki regresi di OSS Hive. EMR Hive memperbaiki regresi dan bug tambahan di tabel Hive ACID. Peningkatan ini menghasilkan kinerja kueri baca yang lebih cepat ketika ada sejumlah besar pemisahan input dalam satu Tez Grouped Split.


| 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` adalah`1`. | 
| `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. | 

Catatan konfigurasi:


| Materi pelajaran | Detail | 
| --- | --- | 
| Pengaturan konfigurasi yang disarankan | Disarankan untuk mengatur pengaturan konfigurasi di atas ke nilai yang Anda inginkan di keduanya `hive-site` dan`tez-site`. | 
| Nilai yang cocok | Nilai pengaturan konfigurasi harus sama di keduanya `hive-site` dan`tez-site`. | 
| Rekomendasi LLAP | Tidak disarankan untuk menggunakan fitur ini saat LLAP diaktifkan. | 

### Benchmarking untuk pembukaan split asinkron Tez
<a name="tez-configure-async-benchmark"></a>

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 yang 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 | Peningkatan | 
| --- | --- | --- | --- | 
| CSVdataset | 90.26 detik | 79.20 detik | 12,25% | 
| Parquetdataset | 54,67 detik | 42,23 detik | 22,75% | 