LabHub
学习 学习路径 课程

Apache Flink — 스트림을 엔진으로 돌린다 · 체크포인트와 세이브포인트 · 测验

퀴즈: 체크포인트·세이브포인트·정확히 한 번

在 LabHub 中继续学习

6道题. 完成作答后会显示正确答案和解析。

  1. 체크포인트 1초 간격으로 csv 파일 싱크에 쓰는 잡이 돌고 있다. 하류 도구가 읽어도 되는 파일은?

    1. 이름이 part- 로 시작하는 파일 — 체크포인트 완료 통지 뒤 확정된 것
    2. 이름이 .part- 로 시작하는 파일 — 가장 최근 행이 들어 있는 것
    3. 디렉터리의 모든 파일 — 싱크는 쓰는 즉시 확정한다
    4. 체크포인트 디렉터리의 chk-N 아래 파일 — 결과 사본이 거기 있다
  2. `STOP JOB '<jid>' WITH SAVEPOINT` 로 멈춘 직후 싱크 디렉터리에 쓰는 중이던 점 파일은 어떻게 되는가?

    1. 그대로 남아 다음 잡이 이어 쓴다
    2. 세이브포인트가 완료되며 확정 파일로 바뀐다
    3. 세이브포인트 안으로 옮겨져 디렉터리에서 사라진다
    4. 지워지고 그 안의 행은 다음 잡이 다시 만든다
  3. 세이브포인트에서 되살린 잡이 싱크 경로를 out1 에서 out2 로 바꿨는데도 순번이 out1 의 마지막 바로 다음부터 나왔다. 왜인가?

    1. filesystem 싱크가 out1 의 마지막 id 를 읽어 이어 붙였기 때문이다
    2. datagen 은 원래 잡 이름별로 번호를 기억하기 때문이다
    3. 원천이 다음에 낼 번호가 원천의 상태로 세이브포인트에 들어 있기 때문이다
    4. JobManager 가 잡 기록에서 마지막 행 수를 찾아 시작점을 정했기 때문이다
  4. 보존 설정 없이(기본값) 체크포인트를 켠 잡을 취소했다. ckpt/<jid>/ 아래는 어떻게 되는가?

    1. 마지막 chk-N 하나만 남는다
    2. 모든 chk-N 이 남는다 — 지우는 것은 사람의 몫이다
    3. 세이브포인트 디렉터리로 옮겨진다
    4. chk-N 디렉터리가 지워진다 — 기본은 장애 복구용이라 보존하지 않는다
  5. SQL 을 조금 고쳐 세이브포인트 없이 같은 싱크 디렉터리로 다시 INSERT 했다. 순번 원천이라면 결과는?

    1. 원천이 1 부터 다시 세어 이미 있는 id 가 한 번 더 들어간다
    2. Flink 가 같은 잡 이름을 알아보고 마지막 위치부터 이어 쓴다
    3. 싱크가 같은 디렉터리의 파일을 덮어써 결과가 새로 만들어진다
    4. 체크포인트 디렉터리에 옛 잡의 체크포인트가 있으면 자동으로 복원한다
  6. RETAIN_ON_CANCELLATION 으로 남긴 chk-N 에서 되살려 같은 디렉터리에 이어 썼다. 취소 때 남은 점 파일을 하류가 함께 읽으면?

    1. 아무 문제 없다 — 새 잡이 점 파일을 이어 받아 확정했다
    2. 빠지는 id 가 생긴다 — 점 파일의 행은 새 잡이 다시 쓰지 않는다
    3. 겹치는 id 가 생긴다 — 새 잡이 체크포인트 시점부터 다시 써서 확정했기 때문이다
    4. 읽을 수 없다 — 점 파일은 취소 때 이미 비워졌다