Cloud Logging

Cloud Logging에서 Dataproc 작업 및 클러스터 로그를 보고, 검색하고, 필터링하고, 보관 처리할 수 있습니다.

로깅의 Dataproc 작업 로그

Dataproc 작업을 실행하면 작업 드라이버 출력이 Cloud Console로 스트리밍되고, 명령 터미널 창(명령줄에서 제출된 작업)에 표시되고 Cloud Storage에 저장됩니다(작업 드라이버 출력에 액세스 참조). 이 섹션에서는 Dataproc이 로깅에 작업 드라이버 로그를 저장하도록 사용 설정하는 방법을 설명합니다.

Cloud Logging에서 작업 드라이버 로그 사용 설정

로깅에서 작업 드라이버 로그를 사용 설정하려면 클러스터를 만들 때 다음 클러스터 속성을 설정합니다.

dataproc:dataproc.logging.stackdriver.job.driver.enable=true

다음 클러스터 속성도 필요하며 클러스터를 만들 때 기본적으로 설정됩니다.

dataproc:dataproc.logging.stackdriver.enable=true
dataproc:jobs.file-backed-output.enable=true

Cloud Logging에서 YARN 컨테이너 로그 사용 설정

YARN 컨테이너 로그의 작업 리소싱을 사용 설정하려면 클러스터를 만들 때 다음 클러스터 속성을 설정합니다.

dataproc:dataproc.logging.stackdriver.job.yarn.container.enable=true

다음 속성도 필요하며 클러스터를 만들 때 기본적으로 설정됩니다.

dataproc:dataproc.logging.stackdriver.enable=true

Cloud Logging에서 작업 로그에 액세스

Logging Console, gcloud logging 명령어, Logging API를 사용하여 로깅에 액세스할 수 있습니다.

콘솔

Dataproc 작업 드라이버 및 YARN 컨테이너 로그는 Cloud Dataproc 작업 리소스 아래에 나열됩니다.

작업 드라이버 로그 예:

YARN 컨테이너 로그 예:

gcloud

gcloud 로깅 읽기 명령어를 사용하여 작업 로그 항목을 읽을 수 있습니다. 다음 명령어는 클러스터 라벨을 사용하여 반환된 로그 항목을 필터링합니다.

gcloud logging read \
    resource.type=cloud_dataproc_job \
    resource.labels.region=cluster-region \
    resource.labels.job_id=my-job-id

샘플 출력(부분):

jsonPayload:
  class: org.apache.hadoop.hdfs.StateChange
  filename: hadoop-hdfs-namenode-test-dataproc-resize-cluster-20190410-38an-m-0.log
  ,,,
logName: projects/project-id/logs/hadoop-hdfs-namenode
---
jsonPayload:
  class: SecurityLogger.org.apache.hadoop.security.authorize.ServiceAuthorizationManager
  filename: cluster-name-dataproc-resize-cluster-20190410-38an-m-0.log
  ...
logName: projects/google.com:hadoop-cloud-dev/logs/hadoop-hdfs-namenode

REST API

Logging REST API를 사용하여 로그 항목을 나열할 수 있습니다(entries.list 참조).

로깅의 Dataproc 클러스터 로그

Dataproc은 다음 Apache Hadoop, Spark, Hive, Zookeeper, 기타 Dataproc 클러스터 로그를 Cloud Logging으로 내보냅니다.

로그 유형 로그 이름 설명
마스터 데몬 로그 hadoop-hdfs
hadoop-hdfs-namenode
hadoop-hdfs-secondary namenode
hadoop-hdfs-zkfc
hive-metastore
hive-server2
mapred-mapred-historyserver
yarn-yarn-resourcemanager
yarn-yarn-timelineserver
zookeeper
저널 노드
HDFS 이름 노드
HDFS 보조 이름 노드
Zookeeper 장애 조치 컨트롤러
Hive 메타스토어
Hive 서버2
Mapreduce 작업 기록 서버
YARN 리소스 관리자
YARN 타임라인 서버
Zookeeper 서버
작업자 데몬 로그 hadoop-hdfs-datanode
yarn-yarn-nodemanager
HDFS 데이터 노드
YARN 노드 관리자
시스템 로그 자동 확장 처리
google.dataproc.agent
google.dataproc.startup
Dataproc 자동 확장 처리 로그
Dataproc 에이전트 로그
Dataproc 시작 스크립트 로그 + 초기화 작업 로그

Cloud Logging에서 클러스터 로그 액세스

Logging Console, gcloud logging 명령어, Logging API를 사용하여 로깅에 액세스할 수 있습니다.

콘솔

Dataproc 클러스터 로그는 Cloud Dataproc 클러스터 리소스 아래에 나열됩니다. 드롭다운 목록에서 로그 유형을 선택합니다.

gcloud

gcloud 로깅 읽기 명령어를 사용하여 클러스터 로그 항목을 읽을 수 있습니다. 다음 명령어는 클러스터 라벨을 사용하여 반환된 로그 항목을 필터링합니다.

gcloud logging read <<'EOF'
    resource.type=cloud_dataproc_cluster
    resource.labels.region=cluster-region
    resource.labels.cluster_name=cluster-name
    resource.labels.cluster_uuid=cluster-uuid
EOF

샘플 출력(부분):

jsonPayload:
  class: org.apache.hadoop.yarn.server.resourcemanager.RMAuditLogger
  filename: yarn-yarn-resourcemanager-cluster-name-m.log
  ...
logName: projects/project-id/logs/yarn-yarn-resourcemanager
---
jsonPayload:
  class: org.apache.hadoop.yarn.server.resourcemanager.RMAuditLogger
  filename: yarn-yarn-resourcemanager-component-gateway-cluster-m.log
  ...
logName: projects/project-name/logs/yarn-yarn-resourcemanager

REST API

Logging REST API를 사용하여 로그 항목을 나열할 수 있습니다(entries.list 참조).

권한

Logging에 로그를 작성하려면 Dataproc VM 서비스 계정에 logging.logWriter 역할 IAM 역할이 있어야 합니다. 기본 Dataproc 서비스 계정에 이 역할이 있습니다. 커스텀 서비스 계정을 사용하는 경우 이 역할을 서비스 계정에 할당해야 합니다.

다음 단계