gcloud dataproc clusters diagnose
명령어를 실행하면 시스템, Spark, Hadoop, Dataproc 로그, 클러스터 구성 파일 및 기타 정보를 수집하여 조사하거나 Google 지원팀과 공유하여 Dataproc 클러스터 또는 작업의 문제를 해결하는 데 도움을 받을 수 있습니다.
이 명령어는 진단 데이터 및 요약을 Cloud Storage의 Dataproc 스테이징 버킷에 업로드합니다.
Google Cloud CLI 진단 클러스터 명령어 실행
gcloud dataproc clusters diagnose
명령어를 실행하여 진단 보관 파일을 만들고 위치를 출력합니다.
gcloud dataproc clusters diagnose CLUSTER_NAME \ --region=REGION \ OPTIONAL FLAGS ...
참고:
- CLUSTER_NAME: 진단할 클러스터의 이름입니다.
- REGION: 클러스터의 리전입니다(예:
us-central1
). OPTIONAL FLAGS:
--job-ids
: 이 플래그를 사용하면 기본 로그 파일 외에도 지정된 작업 ID의 쉼표로 구분된 목록에 대한 작업 드라이버, Spark 이벤트, YARN 애플리케이션, Spark Lense 출력 로그를 수집할 수 있습니다. 맵리듀스 작업의 경우 YARN 애플리케이션 로그만 수집됩니다. YARN 애플리케이션 로그를 수집하려면 YARN 로그 집계를 사용 설정해야 합니다.--yarn-application-ids
: 이 플래그를 사용하면 기본 로그 파일 외에도 지정된 YARN 애플리케이션 ID의 쉼표로 구분된 목록에 대한 작업 드라이버, Spark 이벤트, YARN 애플리케이션, Spark Lense 출력 로그를 수집할 수 있습니다. YARN 애플리케이션 로그를 수집하려면 YARN 로그 집계를 사용 설정해야 합니다.--start-time
및--end-time
: 두 플래그를 사용하여 진단 데이터를 수집할 시간 범위를%Y-%m-%dT%H:%M:%S.%fZ
형식으로 지정합니다. 또한 시간 범위를 지정하면 해당 기간 동안 Dataproc 자동 확장 로그 수집이 사용 설정됩니다. 기본적으로는 Dataproc 자동 확장 로그가 진단 데이터에 수집되지 않습니다.--tarball-access
=GOOGLE_DATAPROC_DIAGNOSE
이 플래그를 사용하여 Google Cloud 지원팀에 진단 tar 파일을 제출하거나 이 파일에 대한 액세스 권한을 제공합니다. 또한 다음과 같이 Google Cloud 지원팀에 정보를 제공합니다.- 진단 tar 파일의 Cloud Storage 경로 또는
- 클러스터 구성 버킷, 클러스터 UUID, diagnose 명령어의 작업 ID
클러스터 마스터 노드에서 진단 스크립트 실행(필요한 경우)
클러스터가 오류 상태이면 gcloud dataproc clusters diagnose
명령어가 실패하거나 시간이 초과될 수 있으며 Dataproc 서버의 진단 태스크를 수락할 수 없습니다. 진단 명령어를 실행하는 대신 SSH로 클러스터 마스터 노드에 연결하여 진단 스크립트를 다운로드하고 마스터 노드에서 스크립트를 로컬로 실행할 수 있습니다.
gcloud compute ssh HOSTNAME
gcloud storage cp gs://dataproc-diagnostic-scripts/diagnostic-script.sh .
sudo bash diagnostic-script.sh
진단 tar 보관 파일은 로컬 디렉터리에 저장됩니다. 명령어 결과에는 tar 파일의 위치가 나열되고 tar 파일을 Cloud Storage 버킷에 업로드하는 방법이 설명됩니다.
진단 데이터를 공유하는 방법
보관 파일을 공유하려면 다음 안내를 따르세요.
- Cloud Storage에서 보관 파일을 다운로드한 다음 다운로드한 보관 파일을 공유합니다.
- 다른 Google Cloud 사용자 또는 프로젝트의 파일 액세스를 허용하도록 보관 파일에 대한 권한을 변경합니다.
예시: 다음 명령어는 사용자 jane@gmail.com
의 보관 파일에 대한 읽기 권한을 추가합니다.
gcloud storage objects update PATH_TO_ARCHIVE} --add-acl-grant=entity=user-jane@gmail.com,role=roles/storage.legacyObjectReader
진단 요약 및 보관 파일 콘텐츠
diagnose
명령어는 진단 요약과 함께 클러스터 구성 파일, 로그, 기타 파일 및 정보가 포함된 tar 보관 파일을 출력합니다. tar 보관 파일은 Cloud Storage의 Dataproc 스테이징 버킷에 기록됩니다.
진단 요약: 진단 스크립트는 수집된 데이터를 분석하고 진단 보관 파일의 루트에 summary.txt
를 생성합니다. 이 요약에서는 YARN, HDFS, 디스크, 네트워킹 상태를 비롯한 클러스터 상태 개요와 잠재적인 문제에 대한 경고를 보여줍니다.
tar 보관 파일: 다음 섹션에서는 진단 tar 보관 파일에 포함된 파일 및 정보를 보여줍니다.
데몬 및 서비스 정보
실행된 명령 | 자료실 내 위치 |
---|---|
yarn node -list -all |
/system/yarn-nodes.log |
hdfs dfsadmin -report -live -decommissioning |
/system/hdfs-nodes.log |
hdfs dfs -du -h |
/system/hdfs-du.log |
service --status-all |
/system/service.log |
systemctl --type service |
/system/systemd-services.log |
curl "http://${HOSTNAME}:8088/jmx" |
/metrics/resource_manager_jmx |
curl "http://${HOSTNAME}:8088/ws/v1/cluster/apps" |
/metrics/yarn_app_info |
curl "http://${HOSTNAME}:8088/ws/v1/cluster/nodes" |
/metrics/yarn_node_info |
curl "http://${HOSTNAME}:9870/jmx" |
/metrics/namenode_jmx |
JVM 정보
실행된 명령 | 자료실 내 위치 |
---|---|
jstack -l "${DATAPROC_AGENT_PID}" |
jstack/agent_${DATAPROC_AGENT_PID}.jstack |
jstack -l "${PRESTO_PID}" |
jstack/agent_${PRESTO_PID}.jstack |
jstack -l "${JOB_DRIVER_PID}" |
jstack/driver_${JOB_DRIVER_PID}.jstack |
jinfo "${DATAPROC_AGENT_PID}" |
jinfo/agent_${DATAPROC_AGENT_PID}.jstack |
jinfo "${PRESTO_PID}" |
jinfo/agent_${PRESTO_PID}.jstack |
jinfo "${JOB_DRIVER_PID}" |
jinfo/agent_${JOB_DRIVER_PID}.jstack |
Linux 시스템 정보
실행된 명령 | 자료실 내 위치 |
---|---|
df -h |
/system/df.log |
ps aux |
/system/ps.log |
free -m |
/system/free.log |
netstat -anp |
/system/netstat.log |
sysctl -a |
/system/sysctl.log |
uptime |
/system/uptime.log |
cat /proc/sys/fs/file-nr |
/system/fs-file-nr.log |
ping -c 1 |
/system/cluster-ping.log |
로그 파일
포함된 항목 | 자료실 내 위치 |
---|---|
파일 이름에 다음과 같은 프리픽스가 포함된 /var/log 의 모든 로그:cloud-sql-proxy dataproc druid gcdp google hadoop hdfs hive knox presto spark syslog yarn zookeeper |
파일은 자료실 logs 폴더에 저장되고 원래 파일 이름은 유지됩니다. |
클러스터의 각 노드(마스터 및 워커)에 대한 Dataproc 노드 시작 로그. | 파일은 클러스터의 각 머신별로 하위 폴더가 구분된 자료실 node_startup 폴더에 저장됩니다. |
journalctl -u google-dataproc-component-gateway 의 구성요소 게이트웨이 로그 |
/logs/google-dataproc-component-gateway.log |
구성 파일
포함된 항목 | 자료실 내 위치 |
---|---|
VM 메타데이터 | /conf/dataproc/metadata |
/etc/environment 의 환경 변수 |
/conf/dataproc/environment |
Dataproc 속성 | /conf/dataproc/dataproc.properties |
/etc/google-dataproc/ 의 모든 파일 |
/conf/dataproc/ |
/etc/hadoop/conf/ 의 모든 파일 |
/conf/hadoop/ |
/etc/hive/conf/ 의 모든 파일 |
/conf/hive/ |
/etc/hive-hcatalog/conf/ 의 모든 파일 |
/conf/hive-hcatalog/ |
/etc/knox/conf/ 의 모든 파일 |
/conf/knox/ |
/etc/pig/conf/ 의 모든 파일 |
/conf/pig/ |
/etc/presto/conf/ 의 모든 파일 |
/conf/presto/ |
/etc/spark/conf/ 의 모든 파일 |
/conf/spark/ |
/etc/tez/conf/ 의 모든 파일 |
/conf/tez/ |
/etc/zookeeper/conf/ 의 모든 파일 |
/conf/zookeeper/ |