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를 시작해줘야 한다.
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
플링크 잡 실행하기
플링크 클러스터를 설치했으면 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>