Dataproc 영구 기록 서버

개요

Dataproc 클러스터가 삭제된 이후 사용자가 진단 또는 다른 목적으로 작업 기록 파일을 보려는 경우가 있습니다. Dataproc 영구 기록 서버(PHS)는 활성 및 삭제된 Dataproc 클러스터에서 실행되는 작업의 작업 기록을 볼 수 있는 UI를 제공합니다.

영구 기록 서버는 단일 노드 Dataproc 클러스터에서 실행되며 Cloud Storage에 작업 기록 파일을 저장하고 액세스하며 맵리듀스, Spark, Pig 작업을 지원합니다. 이 기능은 Dataproc 이미지 버전 1.4-debian10 이상에서 사용할 수 있습니다.

작업 클러스터 설정

영구 기록 서버 클러스터에서 액세스 및 표시될 작업 로그를 저장할 Dataproc 작업 클러스터를 만들 때 다음 플래그와 클러스터 속성을 지정합니다.

  • --enable-component-gateway: 필수 플래그. 구성요소 게이트웨이를 사용 설정하려면 이 플래그를 사용해야 합니다.
  • dataproc:job.history.to-gcs.enabled: 필수 클러스터 속성입니다. Cloud Storage에서 작업 기록 스토리지를 사용 설정하려면 이 속성을 'true'로 설정해야 합니다.
  • spark:spark.history.fs.logDirectoryspark:spark.eventLog.dir 선택적 클러스터 속성. 이 플래그는 Spark 작업 기록 및 이벤트 로그를 각각 작성할 위치를 지정합니다. 사용하는 경우 두 플래그를 모두 설정하고 동일한 버킷 내 디렉터리를 가리켜야 합니다.
    샘플 속성:
    spark:spark.history.fs.logDirectory=gs://bucket-name/directory-name/spark-job-history,
    spark:spark.eventLog.dir=gs://bucket-name/directory-name/spark-job-history
    
  • mapred:mapreduce.jobhistory.intermediate-done-dirmapred:mapreduce.jobhistory.done-dir: 선택적 클러스터 속성. 이러한 플래그는 중간 및 최종 맵리듀스 작업 기록 파일을 각각 쓸 Cloud Storage 위치를 지정합니다. 사용하는 경우 두 플래그를 모두 설정하고 동일한 버킷 내 디렉터리를 가리켜야 합니다. 중간 mapreduce.jobhistory.intermediate-done-dir 위치는 임시 스토리지입니다. 맵리듀스 작업이 완료되면 중간 파일이 mapreduce.jobhistory.done-dir 위치로 이동합니다.
    샘플 속성:
    mapred:mapreduce.jobhistory.done-dir=gs://bucket-name/directory-name/mapreduce-job-history/done,
    mapred:mapreduce.jobhistory.intermediate-done-dir=gs://bucket-name/directory-name/mapreduce-job-history/intermediate-done
    
  1. gcloud dataproc clusters create 명령어를 실행하여 작업 클러스터를 만듭니다. 클러스터는 1.4-debian10 이상으로 생성되어야 합니다. 참고: 가독성을 위해 --property 플래그 값은 별도의 행에 표시합니다. 명령어를 실행할 때 쉼표로 구분된 모든 --property 플래그 값을 한 줄에 지정해야 합니다.
    gcloud dataproc clusters create cluster-name \
        --region=region \
        --image-version=1.4-debian10 \
        --enable-component-gateway \
        --properties='dataproc:job.history.to-gcs.enabled=true,
    spark:spark.history.fs.logDirectory=gs://bucket-name/directory-name/spark-job-history,
    spark:spark.eventLog.dir=gs://bucket-name/directory/spark-job-history,
    mapred:mapreduce.jobhistory.done-dir=gs://bucket-name/directory/mapreduce-job-history/done,
    mapred:mapreduce.jobhistory.intermediate-done-dir=gs://bucket-name/directory-name/mapreduce-job-history/intermediate-done'
    

다음 간소화된 명령어를 실행하여 Dataproc에서 작업 기록 파일에 대한 Cloud Storage 위치를 설정할 수 있습니다.

gcloud dataproc clusters create cluster-name \
    --region=region \
    --image-version=1.4-debian10 \
    --enable-component-gateway \
    --properties='dataproc:job.history.to-gcs.enabled=true'

위에 나와 있는 단순화된 명령어를 사용하면 작업 기록 파일이 기본 디렉터리의 Dataproc 임시 버킷 /spark-job-history, /mapreduce-job-history/done, /mapreduce-job-history/intermediate-done에 저장됩니다. 임시 버킷 Cloud Storage 위치는 gcloud dataproc clusters describe cluster-name --region=region 명령어 출력에 나열됩니다. 작업 기록 파일의 Cloud Storage 위치도 클러스터의 /etc/spark/conf/spark-defaults.conf/etc/hadoop/conf/mapred-site.xml 파일에 나열됩니다.

작업 클러스터 마스터 노드에 SSH로 설정한 후의 예:

cat /etc/spark/conf/spark-defaults.conf
...
spark.history.fs.logDirectory=gs://temp-bucket/spark-job-history
spark.eventLog.dir=gs://temp-bucket/spark-job-history
cat /etc/hadoop/conf/mapred-site.xml
...
<property>
  <name>mapreduce.jobhistory.done-dir</name>
  <value>gs://temp-bucket/mapreduce-job-history/done</value>
</property>
<property>
  <name>mapreduce.jobhistory.intermediate-done-dir</name>
  <value>gs://temp-bucket/mapreduce-job-history/done_intermediate</value>
</property>

영구 기록 서버 설정

PHS 단일 노드 클러스터를 만들 때 다음 플래그와 클러스터 속성을 지정합니다.

  • --enable-component-gateway: 필수 플래그. 구성요소 게이트웨이를 사용 설정하려면 이 플래그를 사용해야 합니다.
  • spark:spark.history.fs.logDirectory: 영구 Spark 작업 기록을 사용 설정하는 데 필요한 클러스터 속성입니다. 이 속성은 PHS가 작업 클러스터에 기록하는 Spark 작업 기록 로그에 액세스할 Cloud Storage 버킷과 디렉터리를 지정합니다(작업 클러스터 설정 참조). 특정 버킷 디렉터리를 지정하는 대신 별표를 와일드 카드로 사용(예: gs://bucket-name/*/spark-job-history)하여 PHS 서버가 서로 다른 작업 클러스터로 작성한 지정 버킷의 여러 디렉터리로 일치시킬 수 있도록 허용합니다(단 효율적 고려사항: 중간 경로 와일드 카드 사용 참조).
  • mapred:mapreduce.jobhistory.read-only.dir-pattern: 영구 맵리듀스 작업 기록을 사용 설정하는 데 필요한 클러스터 속성입니다. 이 속성은 PHS가 작업 클러스터에서 작성한 맵리듀스 작업 기록 로그에 액세스할 Cloud Storage 버킷 디렉터리를 지정합니다(작업 클러스터 설정 참조). 특정 버킷 디렉터리를 지정하는 대신 별표를 와일드 카드로 사용(예: gs://bucket-name/*/mapreduce-job-history/done)하여 PHS 서버가 서로 다른 작업 클러스터로 작성한 지정 버킷의 여러 디렉터리로 일치시킬 수 있도록 허용합니다(단 효율적 고려사항: 중간 경로 와일드 카드 사용 참조).
  1. gcloud dataproc clusters create 명령어를 실행하여 단일 노드 Dataproc PHS 클러스터를 만듭니다.
    gcloud dataproc clusters create cluster-name \
        --single-node \
        --region=region \
        --image-version=1.4-debian10 \
        --enable-component-gateway \
        --properties='spark:spark.history.fs.logDirectory=gs://bucket-name/*/spark-job-history,mapred:mapreduce.jobhistory.read-only.dir-pattern=gs://bucket-name/*/mapreduce-job-history/done'
    

작업 기록 파일 보기

  1. Cloud Console에서 PHS 단일 노드 클러스터 세부정보 페이지로 이동한 다음 'WEB INTERFACES' 탭을 클릭합니다.

  2. 맵리듀스 및 Spark 작업 기록 UI를 보려면 'MapReduce 작업 기록' 또는 'Spark 기록 서버'를 클릭합니다.

    예시:

    다음 스크린샷은 작업 클러스터의 spark.history.fs.logDirectoryspark:spark.eventLog.dir를 설정한 후 job-cluster-1 및 job-cluster-2에서 실행되는 Spark 작업에 대한 링크를 보여주는 PHS 기록 서버 UI를 보여주며 PHS 클러스터의 spark.history.fs.logDirectory 위치는 다음과 같습니다.

    job-cluster-1 gs://example-cloud-storage-bucket/job-cluster-1/spark-job-history
    job-cluster-2 gs://example-cloud-storage-bucket/job-cluster-2/spark-job-history
    phs-cluster gs://example-cloud-storage-bucket/*/spark-job-history