Dataproc 클러스터 진단

'Dataproc 클러스터 명령어 진단 요약 | Google Cloud'

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/