

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

`tez-site` 구성 분류를 통해 값을 설정하여 Tez를 사용자 지정할 수 있습니다. 이는 `tez-site.xml` 구성 파일의 설정을 구성합니다. 자세한 내용은 Apache Tez 설명서의 [TezConfiguration](https://tez.apache.org/releases/0.8.2/tez-api-javadocs/configs/TezConfiguration.html)을 참조하세요. Tez 실행 엔진을 사용하도록 Hive 또는 Pig를 변경하려면 `hive-site` 및 `pig-properties` 구성 분류를 적절하게 사용합니다. 예제는 아래에 나와 있습니다.

## 구성의 예
<a name="tez-configure-example"></a>

**Example 예제: Tez 루트 로깅 수준 사용자 지정과 Hive 및 Pig에 대한 실행 엔진으로 Tez 설정**  
아래에 표시된 예제 `create-cluster` 명령은 Tez, Hive 및 Pig가 설치된 클러스터를 생성합니다. 이 명령은 Amazon S3에 저장된 파일(`myConfig.json`)을 참조합니다. 이 파일은 `hive-site` 및 `pig-properties` 구성 분류를 사용하여 실행 엔진을 Pig 및 Hive에 대해 Tez를 설정하고 `tez.am.log.level`을 `DEBUG`로 설정하는 `tez-site` 분류의 속성을 지정합니다.  
가독성을 위해 Linux 줄 연속 문자(\$1)가 포함됩니다. Linux 명령에 사용하거나 제외할 수 있습니다. Windows에서는 제외시키거나 캐럿(^)으로 바꿉니다.

```
aws emr create-cluster --release-label emr-7.12.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
```
다음은 `myConfig.json`의 콘텐츠 예제입니다.  

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

**참고**  
Amazon EMR 버전 5.21.0 이상에서는 클러스터 구성을 재정의할 수 있으며, 실행 중인 클러스터의 각 인스턴스 그룹에 대해 추가 구성 분류를 지정할 수 있습니다. Amazon EMR 콘솔, AWS Command Line Interface (AWS CLI) 또는 AWS SDK를 사용하여이 작업을 수행할 수 있습니다. 자세한 내용은 [실행 중 클러스터의 인스턴스 그룹에 대해 구성 제공](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps-running-cluster.html)을 참조하세요.

## Tez 비동기 분할 열기
<a name="tez-configure-async"></a>

테이블 경로에 많은 수의 작은 파일이 있고 쿼리가 이를 모두 읽으려고 시도하는 경우 각 개별 분할에 대응되는 각 작은 파일은 하나의 *Tez 그룹화된 분할* 아래에 결합됩니다. 그 다음에는 단일 매퍼가 단일 Tez 그룹화된 분할을 처리합니다. 실행은 동기식이기 때문에 그룹화된 분할 아래의 각 개별 분할은 하나씩 처리됩니다. 이 작업을 하려면 `RecordReader` 객체가 분할을 동기적으로 처리해야 합니다.

Amazon EMR 6.15.0은 Tez 그룹화된 분할에서 입력 분할을 비동기적으로 열도록 지정할 수 있는 구성을 도입합니다. 이 특성은 [TEZ-4397](https://issues.apache.org/jira/browse/TEZ-4397)에 의해 시작되었지만 OSS Hive에서는 회귀가 발생했습니다. EMR Hive는 Hive ACID 테이블의 회귀 현상 및 추가 버그 문제를 해결했습니다. 이 개선 사항으로 인해 단일 Tez 그룹화된 분할에 많은 수의 입력 분할이 있을 경우 읽기 쿼리 성능이 더욱 빨라집니다.


| 이름 | 분류 | 설명 | 
| --- | --- | --- | 
|  `tez.grouping.split.init.threads`  |  `tez-site`  | Tez가 `RecordReaders`를 사전 개시하고 분할을 여는 데 사용하는 대몬(daemon) 스레드 수를 지정합니다. ACID 테이블의 경우 `tez.grouping.split.init.threads`의 지원되는 최대값은 `1`입니다. | 
|  `tez.grouping.split.init.recordreaders`  |  `tez-site`  | 대몬(daemon) 스레드에서 사전 초기화한 상태로 유지할 `RecordReaders`의 개수를 지정합니다. 이는 Tez 그룹화된 분할에 `InputSplits`가 다량 포함되어 있을 때 도움이 될 수 있습니다. 해당 입력 `RecordReaders` 분할을 처리하기 위한 초기화는 순차적 처리 대신 대몬(daemon) 스레드를 사용하여 비동기적으로 수행할 수 있습니다. | 

구성 참고 사항:


| 주제 | 세부 정보 | 
| --- | --- | 
| 권장 구성 설정 | 위의 구성 설정을 `hive-site` 및 `tez-site` 모두에서 원하는 값으로 설정하는 것이 좋습니다. | 
| 값 일치 | 구성 설정의 값은 `hive-site` 및 모두에서 동일합니다`tez-site`. | 
| LLAP 권장 사항 | LLAP가 활성화된 경우이 기능을 사용하지 않는 것이 좋습니다. | 

### Tez 비동기 분할 열기를 위한 벤치마킹
<a name="tez-configure-async-benchmark"></a>

Tez 비동기 분할 열기 기능을 벤치마킹하기 위해 다음 환경 및 구성을 사용했습니다.
+ **벤치마크 환경** – m5.16xlarge를 사용하는 프라이머리 노드 1개와 m5.16xlarge를 사용하는 코어 노드 16개가 있는 Amazon EMR 클러스터입니다.
+ **벤치마크 구성** – 단일 Tez 그룹화된 분할에 입력 분할이 많은 벤치마킹 시나리오를 시뮬레이션하기 위해 `tez.grouping.split-count`를 `1`로 설정합니다.
+ **벤치마킹을 위해 사용되는 표** - 테이블에는 파티션 200개가 포함되어 있고 각 파티션에는 단일 파일이 포함되어 있습니다. 벤치마크는 해당 테이블에 CSV 파일이 포함된 경우와 해당 테이블에 파켓 파일이 포함된 경우를 위해 수행됩니다. 벤치마킹을 위한 Hive 쿼리: 테이블의 `SELECT COUNT(*)`를 10회 수행하고 평균 런타임을 계산합니다.
+ **Tez 비동기 분할 열기를 활성화하기 위한 구성** - 다음과 같습니다.
  + `tez.grouping.split.init.threads` = `4`
  + `tez.grouping.split.init.recordreaders` = `10`


| 데이터세트 | 기능 비활성화(기준) | 기능 활성화 | 개선 | 
| --- | --- | --- | --- | 
|  CSV 데이터 세트  |  90.26초  | 79.20초 | 12.25% | 
|  Parquet 데이터 세트  |  54.67초  | 42.23초 | 22.75% | 