6단계: 구성 설정 검토 - 아마존 EMR

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

6단계: 구성 설정 검토

구성 설정은 작업을 재시도할 횟수 및 정렬에 사용 가능한 메모리 양과 같은 클러스터 실행 방식에 대한 세부 정보를 지정합니다. EMRAmazon을 사용하여 클러스터를 시작하면 표준 하둡 구성 설정 외에도 Amazon EMR 전용 설정이 있습니다. 구성 설정은 클러스터의 마스터 노드에 저장됩니다. 구성 설정을 점검하여 클러스터를 효율적으로 실행하는 데 필요한 리소스가 있는지 확인할 수 있습니다.

EMRAmazon은 클러스터를 시작하는 데 사용하는 기본 하둡 구성 설정을 정의합니다. 값은 클러스터에 지정한 인스턴스 유형과 인스턴스 유형을 기반으로 합니다. AMI 부트스트랩 작업을 사용하거나 작업 실행 파라미터에 새 값을 지정하여 구성 설정을 기본값에서 수정할 수 있습니다. 자세한 내용은 부트스트랩 작업을 생성하여 추가 소프트웨어 설치 단원을 참조하십시오. 부트스트랩 작업에 따라 구성 설정이 변경되었는지 여부를 확인하려면 부트스트랩 작업 로그를 확인합니다.

Amazon은 각 작업을 실행하는 데 사용된 하둡 설정을 EMR 기록합니다. 로그 데이터는 마스터 노드의 /mnt/var/log/hadoop/history/ 디렉터리 job_job-id_conf.xml 아래에 이름이 지정된 파일에 저장됩니다. 여기서 job-id 작업 식별자로 대체됩니다. 로그 보관을 활성화한 경우, 이 데이터는 Amazon S3의 logs/date/jobflow-id/jobs 폴더에 복사됩니다.date 는 작업이 실행된 날짜이고 jobflow-id 클러스터의 식별자입니다.

다음 하둡 작업 구성 설정은 성능 문제를 조사하는 데 특히 유용합니다. 하둡 구성 설정 및 이 설정이 하둡 동작에 미치는 영향에 대한 자세한 내용은 http://hadoop.apache.org/docs/를 참조하십시오.

주의
  1. 노드 수가 4개 미만인 클러스터에서 1로 설정하면 단일 dfs.replication 노드에 장애가 발생할 경우 HDFS 데이터가 손실될 수 있습니다. 프로덕션 워크로드에는 코어 노드가 4개 이상 있는 클러스터를 사용하는 것이 좋습니다.

  2. EMRAmazon은 클러스터가 코어 노드를 아래로 확장하는 것을 허용하지 않습니다dfs.replication. 예를 들어, dfs.replication = 2인 경우 최소 코어 노드 수가 2개입니다.

  3. Managed Scaling, Auto Scaling을 사용하거나 클러스터 크기를 수동으로 조정하는 경우 dfs.replication을 2 이상으로 설정하는 것이 좋습니다.

구성 설정 설명
dfs.replication RAID유사한 환경을 만들기 위해 단일 블록 (예: 하드 드라이브 블록) 을 복사하는 HDFS 노드 수입니다. 블록 사본이 들어 있는 HDFS 노드의 수를 결정합니다.
io.sort.mb 정렬에 사용 가능한 총 메모리입니다. 이 값은 10x io.sort.factor여야 합니다. 이 설정은 io.sort.mb에 mapred.tasktracker.ap.tasks.maximum을 곱하여 작업 노드에 사용되는 총 메모리를 계산하는 데도 사용할 수 있습니다.
io.sort.spill.percent 정렬 중에 할당된 정렬 메모리가 가득 차서 디스크를 사용하기 시작하는 지점입니다.
mapred.child.java.opts 사용되지 않음. mapred.map.child.java.opts 및 mapred.reduce.child.java.opts를 대신 사용합니다. Java 옵션은 JVM a를 시작할 때 작업 내에서 실행할 때 TaskTracker 사용합니다. 일반적인 파라미터는 최대 메모리 크기를 설정하는 '-Xmx'입니다.
mapred.map.child.java.opts Java 옵션은 맵 내에서 실행되도록 맵 작업을 시작할 때 TaskTracker 사용합니다. JVM 일반적인 파라미터는 최대 메모리 힙 크기를 설정하는 '-Xmx'입니다.
mapred.map.tasks.speculative.execution 동일한 작업의 맵 작업 시도를 병렬로 시작할 수 있는지 여부를 결정합니다.
mapred.reduce.tasks.speculative.execution 동일한 작업의 reduce 작업 시도를 병렬로 시작할 수 있는지 여부를 결정합니다.
mapred.map.max.attempts 맵 작업을 시도할 수 있는 최대 횟수입니다. 모두 실패할 경우 맵 작업이 실패로 표시됩니다.
mapred.reduce.child.java.opts Java 옵션은 JVM for reduce 작업을 시작할 때 TaskTracker 사용하여 내에서 실행합니다. 일반적인 파라미터는 최대 메모리 힙 크기를 설정하는 '-Xmx'입니다.
mapred.reduce.max.attempts reduce 작업을 시도할 수 있는 최대 횟수입니다. 모두 실패할 경우 맵 작업이 실패로 표시됩니다.
mapred.reduce.slowstart.completed.maps reduce 작업을 시도하기 전에 완료해야 하는 맵 작업의 양입니다. 충분히 오래 기다리지 않으면 시도 중에 'Too many fetch-failure' 오류가 발생할 수 있습니다.
mapred.reuse.jvm.num.tasks 작업은 단일 내에서 실행됩니다JVM. 동일한 JVM 작업을 재사용할 수 있는 작업의 수를 지정합니다.
mapred.tasktracker.map.tasks.maximum 매핑 중 작업 노드 당 병렬로 실행할 수 있는 최대 작업량입니다.
mapred.tasktracker.reduce.tasks.maximum reduce 중 작업 노드 당 병렬로 실행할 수 있는 최대 작업량입니다.

클러스터 작업이 메모리 집약적인 경우 코어 노드당 사용하는 작업량을 줄이고 작업 트래커 힙 크기를 축소하여 성능을 향상할 수 있습니다.