← Apache Flink 코스

Courses · Day 4

실습 — 개인 PC 로컬 환경에서 직접 돌려보기

스텝 12 / 17

12 / 17
실습 flink-course-12

로컬 환경 구성 — Docker Compose로 Flink + Kafka 띄우기

실습 순서

  1. Docker Desktop이 설치·실행 중인지 확인한다(메모리 할당 최소 4GB 권장).
  2. 작업 폴더에 docker-compose.yml을 만들고 다음 3개 서비스를 정의한다: jobmanager(flink 공식 이미지, 8081 포트 노출), taskmanager(같은 이미지, jobmanager를 가리키도록 JOB_MANAGER_RPC_ADDRESS 환경변수 설정), kafka(단일 브로커, KRaft 모드로 ZooKeeper 없이 구성하면 컨테이너 하나로 충분).
  3. `docker compose up -d`로 전체를 백그라운드 기동한다.
  4. 브라우저에서 `http://localhost:8081`(Flink Web UI)에 접속해 Task Manager가 1개 이상 연결됐는지, 사용 가능한 Task Slot이 있는지 확인한다.
  5. `docker exec -it <kafka컨테이너> kafka-topics --create --topic sensor-readings --bootstrap-server localhost:9092`로 실습용 토픽을 만든다.

기대 결과

Flink Web UI(localhost:8081)의 Task Managers 탭에 1개 이상의 TaskManager가 연결된 상태로 보이고, Overview에 사용 가능한 Slot 수가 0보다 크게 표시된다. `sensor-readings` 토픽이 정상 생성된다.

Troubleshooting

jobmanager 컨테이너가 계속 재시작을 반복한다

docker-compose.yml에서 taskmanager의 JOB_MANAGER_RPC_ADDRESS가 jobmanager 서비스명과 정확히 일치하는지 확인. 오타가 흔한 원인이다.

8081 포트가 이미 사용 중이라는 에러

다른 애플리케이션(다른 Flink, 다른 웹 서버)이 8081을 쓰고 있는지 확인하고, docker-compose.yml의 포트 매핑을 8082:8081처럼 바꿔서 재시도.