gcloud dataproc clusters diagnose
명령어를 실행하면 시스템, Spark, Hadoop, Dataproc 로그, 클러스터 구성 파일 및 기타 정보를 수집하여 조사하거나 Google 지원팀과 공유하여 Dataproc 클러스터 또는 작업의 문제를 해결하는 데 도움을 받을 수 있습니다.
이 명령어는 진단 데이터 및 요약을 Cloud Storage의 Dataproc 스테이징 버킷에 업로드합니다.
Google Cloud CLI 진단 클러스터 명령어 실행
gcloud dataproc clusters diagnose
명령어를 실행하여 진단 보관 파일을 만들고 위치를 출력합니다.
gcloud dataproc clusters diagnoseCLUSTER_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 sshHOSTNAME
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 updatePATH_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/ |