필수 환경 설정
운영체제: Rocky Linux 8.8
JDK 버전: Java 11 (최소 요구사항 JDK 8 이상)
설치 파일 다운로드
최신 버전 1.17.1 다운로드:
wget https://archive.apache.org/dist/flink/flink-1.17.1/flink-1.17.1-bin-scala_2.12.tgz
로컬 모드 설치
압축 해제
tar -zxvf flink-1.17.1-bin-scala_2.12.tgz
환경 변수 설정
export FLINK_HOME=/opt/flink-1.17.1
export PATH=$FLINK_HOME/bin:$PATH
클러스터 시작
./bin/start-cluster.sh
프로세스 확인
jps 명령어로 다음 프로세스 확인:
- StandaloneSessionClusterEntrypoint (JobManager)
- TaskManagerRunner (TaskManager)
웹 UI 접근
http://서버IP:8081 접속
원격 접근을 위해 방화벽 해제 및 설정 수정:
systemctl stop firewalld.service
vim conf/flink-conf.yaml
클러스터 종료
./bin/stop-cluster.sh
분산 스탠드얼론 모드 구성
노드 구성
3개 서버 사용:
- JobManager: 10.20.0.93
- TaskManager1: 10.20.0.92
- TaskManager2: 10.20.0.90
설치 및 설정
tar -xzf flink-1.17.1-bin-scala_2.12.tgz -C /data/software/
설정 파일 수정
conf/flink-conf.yaml:
jobmanager.rpc.address: 10.20.0.93
jobmanager.bind-host: 0.0.0.0
conf/workers:
10.20.0.92
10.20.0.90
파일 복사
scp -r /data/software/flink-1.17.1/ 10.20.0.92:/data/software/flink-1.17.1/
scp -r /data/software/flink-1.17.1/ 10.20.0.90:/data/software/flink-1.17.1/
SSH 키 인증 설정
ssh-keygen -t rsa
cd ~/.ssh
touch authorized_keys
ssh-copy-id -i id_rsa.pub root@10.20.0.90
ssh-copy-id -i id_rsa.pub root@10.20.0.92
클러스터 시작 및 검증
bin/start-cluster.sh
각 노드 프로세스 확인:
- JobManager 노드: StandaloneSessionClusterEntrypoint
- TaskManager 노드들: TaskManagerRunner
샘플 작업 실행:
./bin/flink run examples/streaming/WordCount.jar
고가용성(HA) 구성
HA 아키텍처 개요
ZooKeeper를 활용한 다중 JobManager 구성으로 무중단 장애복구 구현
노드 할당
- JobManager1: centos01
- JobManager2: centos02
- ZooKeeper: centos01, centos02, centos03
masters 파일 수정
centos01:8081
centos02:8082
HA 설정 추가
conf/flink-conf.yaml:
high-availability: zookeeper
high-availability.zookeeper.quorum: centos01:2181,centos02:2181,centos03:2181
high-availability.storageDir: /data/software/flink-1.17.1/ha
ZooKeeper 설정
conf/zoo.cfg:
server.1=centos01:2888:3888
server.2=centos02:2888:3888
server.3=centos03:2888:3888
파일 동기화
scp -r /data/software/flink-1.17.1/ centos02:/data/software/flink-1.17.1/
scp -r /data/software/flink-1.17.1/ centos03:/data/software/flink-1.17.1/
ZooKeeper 클러스터 시작
./bin/start-zookeeper-quorum.sh
Flink HA 클러스터 시작
bin/start-cluster.sh
검증 작업
./bin/flink run examples/streaming/WordCount.jar
클러스터 종료
bin/stop-cluster.sh
bin/stop-zookeeper-quorum.sh