Apache Spark 모니터링
Instana 에이전트를 설치하면 Apache Spark 센서가 자동으로 배포 및 설치됩니다.
지원 정보
Apache Spark 센서가 현재 사용 중인 환경과 호환되는지 확인하려면 다음 지원 정보 섹션을 참조하십시오:
지원되는 버전 및 지원 정책
이 센서는 1.4.x 부터 3.5.x 까지의 Spark 버전을 지원합니다.
다음 표는 최신 지원 버전 및 지원 정책을 보여줍니다:
| 기술 | 지원 정책 | 최신 기술 버전 | 최신 지원 버전 |
|---|---|---|---|
| Apache Spark 애플리케이션 | 온디맨드 | 3.5.4 | 3.5.4 |
| Apache Spark 독립형 | 온디맨드 | 3.5.4 | 3.5.4 |
지원 정책에 대한 자세한 내용은 ‘센서 지원 전략’을 참조하십시오.
구성
이 에이전트는 Spark 애플리케이션을 기본적으로 모니터링하며, 구성은 선택 사항입니다.
폴링 속도 설정
Spark 애플리케이션의 사용자 지정 폴링 빈도
다음 예시와 같이 에이전트 configuration.yaml 파일의 poll_rate 매개변수를 사용하여, Instana 가 Apache Spark 에서 데이터와 메트릭을 수집하기 위해 폴링하는 빈도를 구성할 수 있습니다:
com.instana.plugin.sparkapplication:
poll_rate: 1 # values are in seconds. Default value is 1 second.
Spark Standalone용 사용자 지정 폴링 빈도
다음 예시와 같이 에이전트 configuration.yaml 파일의 poll_rate 매개변수를 사용하여, Instana 가 Apache Spark 에서 데이터와 메트릭을 수집하기 위해 폴링하는 빈도를 구성할 수 있습니다:
com.instana.plugin.sparkstandalone:
poll_rate: 1 # values are in seconds. Default value is 1 second.
센서 (데이터 수집)
Spark 애플리케이션
Spark 애플리케이션의 두 가지 기본 구성요소는 드라이버 프로세스 및 실행 프로그램 프로세스입니다. 실행 프로그램 프로세스에는 태스크 실행과 관련된 데이터만 포함됩니다. 드라이버는 기본 프로세스이며 Spark 애플리케이션의 실행을 조정할 책임이 있습니다. 따라서 여기에는 Spark 애플리케이션의 성능 및 실행에 대한 모든 데이터가 포함되며 Spark 애플리케이션의 각 실행 프로그램에 대한 데이터도 포함됩니다.
Instana 드라이버 JVM 로부터 모든 스파크 애플리케이션 데이터(실행기 데이터 포함)를 수집합니다. Spark 애플리케이션을 모니터링하려면 Spark 드라이버( JVM )가 실행 중인 호스트에 Instana 에이전트를 설치해야 합니다.
클러스터 관리자에 Spark 애플리케이션을 제출하는 두 가지 방법이 있습니다. 이 옵션의 설정에 따라 드라이버 JVM 가 실행되는 위치가 달라질 수 있습니다.
- 클러스터 배포 모드: 예를
./spark-submit --class org.apache.spark.examples.JavaWordCount --master yarn --deploy-mode cluster /path/to/app.jar들어 `--deploy-mode clusterJVM ` 옵션을 사용하여 작업을 제출할 때, 스파크 드라이버는 클러스터 관리자의 워커 노드 중 하나에서 실행됩니다. Instana 에이전트가 워커 노드에 설치되어 있으면, Spark 애플리케이션(드라이버)이 자동으로 탐지됩니다 - 클라이언트 배포 모드: 옵션을 지정하거나
--deploy-mode client, 옵션을 지정하지--deploy-mode않고(기본값은client) 제출할 때(예:./spark-submit --class org.apache.spark.examples.JavaWordCount --master yarn --deploy-mode client /path/to/app.jar또는./spark-submit --class org.apache.spark.examples.JavaWordCount --master yarn /path/to/app.jar), 이 명령이 실행되는 호스트에서 Spark 드라이버 JVM 가 실행됩니다. Instana 가 이 Spark 애플리케이션을 모니터링하려면, Spark 제출이 실행되는 호스트에 Instana 에이전트가 설치되어 있어야 합니다.
Spark 애플리케이션의 유형에 따라 Instana 에서 모니터링하는 데이터가 수집됩니다:
일괄처리 애플리케이션
- 작업
- 스테이지
- 가장 길게 완료된 스테이지
- Executor
스트리밍 애플리케이션
- 일괄처리
- 스케줄링 지연
- 총 지연
- 처리 시간
- 출력 조작
- 입력 레코드
- 수신자
- Executor
AWS EMR 의 Spark 애플리케이션
Instana Spark 드라이버를 통해 Spark 애플리케이션을 감지하고 모니터링하므로, Spark 애플리케이션에 대한 가시성을 확보하려면 EMR 클러스터 내의 ` EC2 ` 인스턴스에 에이전트를 설치하십시오. 주 노드에서 스파크 애플리케이션을 배포하고 배포 모드를 client사용하는 경우, EMR 클러스터의 주 노드에만 에이전트를 설치하면 됩니다.
Spark 애플리케이션의 JAR 파일을 주 노드에 복사하지 않고, 예를 들어 S3 버킷과 같은 다른 위치에서 `mode`를 cluster 사용하여 Spark 애플리케이션을 배포하려는 경우, EMR 클러스터의 모든 노드에 에이전트를 설치해야 합니다. 이는 드라이버가 작업자 노드에서 스케줄되었기 때문입니다.
가장 좋은 방법은 EMR 클러스터를 생성한 다음, 고급 구성에서 Instana 에이전트가 설치된 사용자 지정 AMI 이미지를 선택하는 것입니다. 사용자 지정 AMI를 사용하여 EMR 클러스터를 시작하는 방법에 대한 자세한 내용은 AWS 문서를 참조하십시오. Instana 에이전트가 설치된 AMI 이미지를 생성하려면 AWS 문서를 참조하십시오. 소프트웨어를 설치하기 위해 EC2 인스턴스에 SSH로 접속하라는 메시지가 표시되면, Instana 사용자 인터페이스의 사이드바에서 ‘설정(Settings)’을 클릭하여 열 수 있는 ‘ Instana ’ 설정 페이지에 있는 한 줄 명령어를 사용하십시오. 자세한 내용은 ‘Amazon Elastic Compute Cloud(Amazon EC2 )에 호스트 에이전트 설치’를 참조하십시오. 이를 통해 모든 EMR 클러스터 노드에 대한 정보를 파악할 수 있으며, 배포 모드와 관계없이 Spark 애플리케이션을 모니터링할 수 있고, Hadoop 데이터 저장소( Hadoop YARN )와 같은 EMR의 모든 기반 구성 요소에 대한 정보를 얻을 수 있습니다. Hadoop YARN 지표만 측정하려면 ‘Amazon ElasticMapReduce (EMR) 모니터링’ 문서를 참조하십시오.
Spark 독립형 클러스터 관리자
Spark는 YARN 클러스터 관리자에서 실행될 뿐만 아니라, 간단한 독립형 배포 모드도 제공합니다. Spark Standalone은 클러스터 관리자이며, 프라이머리 노드와 워커 노드로 구성됩니다. Instana 클러스터의 주 노드를 통해 전체 스파크 독립형 클러스터를 모니터링합니다. 클러스터의 각 작업자 노드에 대한 클러스터 전체 데이터 및 데이터를 수집합니다.
추적된 구성
- 호스트
- 포트
- REST URI
- 버전
- 상태
메트릭
- 활성 작업자
- 비활성 작업자
- 사용중지된 작업자
- 알 수 없는 상태의 작업자
- 사용된 메모리
- 메모리 총계
- 사용된 코어
- 총 코어
- 작업자별 데이터 및 메트릭
- 최신 앱
- 최신 드라이버