Data Engineering/Flink

[Flink] Flink 도커로 설치하고 Job 제출하기

keyhong-DE 2023. 11. 18. 16:55

Flink v1.18.0 Download

아카이브 파일 수동 설치

Flink 1.18.0 버전은 Java 11 버전, Scala 2.12 버전과 호환된다. 공식적인 파일을 다운받고 싶다며 https://www.apache.org/dyn/closer.lua/flink/flink-1.18.0/flink-1.18.0-bin-scala_2.12.tgz/ 사이트로 가서 HTTP 부분의 링크를 눌러 다운 받거나 Linux/Mac OS에서는 wget을 사용하여 설치 할 수 있다.

wget https://dlcdn.apache.org/flink/flink-1.18.0/flink-1.18.0-bin-scala_2.12.tgz

 

플링크를 시작하려면 bin 폴더에 있는 start-cluster.sh를 시작해줘야 한다.

flink-<X.Y.Z>/bin

 

bin 폴더 안에서 아래와 같은 시작 커맨드를 통해 쉘 스크립트를 실행해준다.

# bin 폴더 안
 ./start-cluster.sh

 

정상적으로 동작하면 플링크 데몬 프로세스가 시작되고 아래와 같은 콘솔 출력을 받을 수 있다.

플링크 데몬 프로세스 정상 시작

도커 이미지 설치 

# flink 이미지 다운로드
docker pull flink

# job manager 
docker run -d --name jobmanager -e JOB_MANAGER_RPC_ADDRESS=jobmanager -p 8081:8081 flink jobmanager

# task manager
docker run -d --name taskmanager-1 --link jobmanager:jobmanager -e JOB_MANAGER_RPC_ADDRESS=jobmanager flink taskmanager
docker run -d --name taskmanager-2 --link jobmanager:jobmanager -e JOB_MANAGER_RPC_ADDRESS=jobmanager flink taskmanager

 

docker로 Flink 클러스터 구축 (Web UI)

플링크 잡 실행하기

플링크 클러스터를 설치했으면 job을 제출해보려 한다. 플링크 아카이브에는 테스트를 할 수 있는 jar파일이 example 폴더에 있다. 플링크 잡의 실행은 bin 폴더 안의 flink 파일을 통해 run 커맨드를 실행한다. WordCount.jar 파일을 실행시키는 다음 예시를 보자.

# 플링크 아카이브로 접근하기 위해 도커 컨테이너 내부 진입
docker exec -it jobmanager /bin/bash

# example 폴더에 있는 WordCount.jar 파일을 job으로 제출
./bin/flink run examples/streaming/WordCount.jar

# bin/flink의 기본 사용 Syntax
Syntax: run [OPTIONS] <jar-file> <arguments>

job 제출 이후 커맨드 창
플링크 UI ① : 작업 완료내역
플링크 UI ② : 작업 처리 순서 Overview