Spark History Server 사용
Hadoop Eco에서는 Spark History Server를 이용하여 Spark 작업을 모니터링할 수 있습니다. Spark History Server는 Spark 웹 UI를 통해 사용자가 실행한 Spark 작업의 로그를 시각적으로 제공하며, 이를 활용해 작업의 실행 상태 및 결과를 확인할 수 있습니다.
로그 업로드 주기에 따라 클러스터 내부 Spark History Server 간의 데이터 차이가 발생할 수 있습니다.
Spark History Server 기능
Spark History Server에서는 다음과 같은 기능을 제공합니다.
- 클러스터 내부 및 외부 Spark 작업 모니터링
- 실행 중인 Spark 애플리케이션의 이벤트 및 컨테이너 로그 확인
- 종료된 클러스터의 Spark 작업 이력 조회
Spark History Server 로그 수집
Spark History Server 기능을 사용하기 위해 Hadoop Eco는 아래 두 가지 유형의 사용자 로그를 수집하여 저장합니다.
로그 타입 | 설명 |
---|---|
Spark Apps 로그 | Spark 작업을 실행하면 수집되는 이벤트 로그이며, 잡 실행시간, 태스크 상태 등이 저장됩니다. |
YARN 컨테이너 로그 | Spark 작업의 익스큐터가 실행중에 생성하는 로그이며, YARN 컨테이너 로그가 stdout, stderr 로 저장됩니다. |
해당 로그들은 클러스터 생성 시 사용자가 설정한 위치에 저장됩니다.
(로그 저장 기능 설정은 클러스터 생성 시 설정 가능하며, 클러스터 생성 이후 설정은 불가합니다.)
단, 아래 조건에 따라 로그가 정상적으로 수집되지 않을 수 있습니다.
Spark History Server 실행 조건
- Hadoop Eco 클러스터 상태
- Running 상태가 아닌 경우 Spark History Server가 정상적으로 실행되지 않을 수 있습니다.
- 단, 로그가 정상적으로 수집된 Terminated 상태의 클러스터에서는 실행 가능합니다.
- 로그 수집 설정
-
아래 설정을 사용자가 변경할 경우 로그가 정상적으로 수집되지 않을 수 있습니다.
- Spark의 spark-defaults.conf 설정
spark.eventLog.enabled true
spark.eventLog.dir hdfs:///var/log/spark/apps- YARN의 yarn-site.xml 설정
커버로스 및 레인저 설치 방법<configuration>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/hadoop/yarn/log</value>
</property>
<property>
<name>yarn.nodemanager.log.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
로그 보존 기간을 너무 짧게 설정하면 로그 확인이 어려울 수 있습니다.
Spark History Server 실행 방법
-
카카오클라우드 콘솔 > Analytics > Hadoop Eco 메뉴로 이동합니다.
-
클러스터 메뉴에서 우측 상단에 위치한 [클러스터 생성] 버튼을 클릭합니다.
-
3단계: 상세 설정 > 클러스터 상세 설정에서 로그 저장 설정을 [사용]으로 변경합니다
-
Object Storage 버킷을 선택 후, 원하는 경로를 지정하고 [생성] 버튼을 클릭합니다.
-
생성한 Hadoop Eco 클러스터 상태가 Running으로 변경되면, 해당 클러스터를 선택하여 클러스터 상세 페이지로 이동합니다.
-
상세 페이지 우측 상단의 Spark 히스토리 서버 실행 버튼을 클릭합니다.
- 버튼 클릭 시 5분 내에 서버가 실행되고, 실행이 완료되면 Spark History Server 열기로 버튼이 변경되고 서버가 자동 실행됩니다.
- Spark History Server는 사용자의 요청이 있다면 일정 시간 동안 유지되며, 요청이 없다면 자동으로 종료됩니다.
- 서버가 종료되어도 사용자의 로그는 삭제되지 않으며, Spark 히스토리 서버 실행 버튼을 통해 다시 실행시킬 수 있습니다.
- 대용량 로그 파일의 경우 Spark History Server 가 실행되면서 메모리 부족으로 종료될 수 있습니다.
- 저장된 로그를 삭제할 경우 Spark History Server가 정상적으로 작동하지 않을 수 있습니다.
- 보안 기능이 켜진 경우 설정에 따라 로그 수집에 오류가 발생할 수 있습니다.