Working Directory
Working Directory (작업 디렉터리)
Flink는 Flink 프로세스(JobManager 및 TaskManager)를 위한 작업 디렉터리(FLIP-198)를 구성하는 것을 지원합니다. 작업 디렉터리는 프로세스가 재시작 시 복구할 수 있는 정보를 저장하는 데 사용됩니다. 이 기능이 동작하려면 프로세스가 동일한 정체성(identity)으로 시작되어야 하고 작업 디렉터리가 저장된 볼륨에 접근할 수 있어야 합니다.
출처: 문서
본문
작업 디렉터리 구성 (Configuring the Working Directory)
Flink 프로세스의 작업 디렉터리는 다음과 같습니다:
- JobManager 작업 디렉터리:
/<jobmanager_resource_id>/jm_ - TaskManager 작업 디렉터리:
/<taskmanager_resource_id>/tm_
여기서 작업 디렉터리 기본(base)이고, JobManager 프로세스의 리소스 id이며, TaskManager 프로세스의 리소스 id입니다.
`` 는 process.working-dir로 구성할 수 있습니다. 로컬 디렉터리를 가리켜야 합니다. 명시적으로 구성하지 않으면 기본적으로 io.tmp.dirs에서 무작위로 선택된 디렉터리로 설정됩니다.
JobManager와 TaskManager 각각의 `` 는 각각 process.jobmanager.working-dir과 process.taskmanager.working-dir으로 구성할 수도 있습니다.
JobManager 리소스 id는 jobmanager.resource-id로 구성할 수 있습니다. 명시적으로 구성하지 않으면 무작위 UUID가 됩니다.
마찬가지로 TaskManager 리소스 id는 taskmanager.resource-id로 구성할 수 있습니다. 명시적으로 구성하지 않으면 실행 중인 프로세스의 호스트와 포트를 포함한 무작위 값이 됩니다.
작업 디렉터리에 저장되는 아티팩트 (Artifacts Stored in the Working Directory)
Flink 프로세스는 다음 아티팩트를 저장하는 데 작업 디렉터리를 사용합니다:
BlobServer와BlobCache가 저장하는 Blobstate.backend.local-recovery가 활성화된 경우의 로컬 상태- RocksDB의 작업 디렉터리
프로세스 재시작 간 로컬 복구 (Local Recovery Across Process Restarts)
작업 디렉터리는 프로세스 재시작 간 로컬 복구(FLIP-201)를 활성화하는 데 사용할 수 있습니다. 이는 Flink가 원격 스토리지에서 상태 정보를 복구할 필요가 없음을 의미합니다.
이 기능을 사용하려면 state.backend.local-recovery로 로컬 복구를 활성화해야 합니다. 또한 TaskManager 프로세스에 taskmanager.resource-id를 통해 결정적(deterministic) 리소스 id를 할당해야 합니다. 마지막으로, 실패한 TaskManager 프로세스는 동일한 작업 디렉터리로 재시작되어야 합니다.
process.working-dir: /path/to/working/dir/base
state.backend.local-recovery: true
taskmanager.resource-id: TaskManager_1 # important: Change for every TaskManager process