Apache Flink Standalone Cluster 로 서버 구성을 해보겠습니다.
○ 설치
먼저 Apache Flink 를 설치를 해야합니다.
이전에 설치 방법을 포스팅 했었습니다.
로컬 시스템에서 두개의 worker를 만들도 클러스터 구성이 가능하지만
여기서는 두개의 다른 서버를 사용해서 구성해 보겠습니다.
설치 방법은 동일하나 설치 경로가 동일해야 합니다. (필수)
예시
- Server #1 Flink_HOME : /home/user/flink-1.11.3
- Server #2 Flink_HOME : /home/user/flink-1.11.3
○ Flink 설정
서버구성은
- Server #1 - Master
- Server #1 - Worker
- Server #2 - Worker
이렇게 구성을 하겠습니다.
먼저 Server #1 의 설정값입니다.
> vi $FLINK_HOME/conf/flink-conf.yaml
jobmanager.rpc.address: "server #1 IP"
절대로 localhost 가 아닌 외부에서 접속이 가능한 IP 주소입니다. ( 예시 : 192.168.40.10 )
> vi $FLINK_HOME/conf/master
192.168.40.10:8081
Master node 주소입니다.
Server #1 의 IP:Port 를 입력해 줍니다.
> vi $FLINK_HOME/conf/workers
192.168.40.10
192.168.40.20
Worker node 주소입니다.
여기는 hostname 또는 IP 주소를 입력합니다. port는 입력하지 않습니다.
Server #1 IP
Server #2 IP
를 입력하였습니다.
만약 Server #2 에 worker를 두개 실행하고 싶다면
Server #1 IP
Server #2 IP
Server #2 IP
이렇게 입력하면 됩니다.
이제 Server #2 의 설정값입니다.
Server #2 에서는 flink-conf.yaml 만 수정해주면 됩니다.
> vi $FLINK_HOME/conf/flink-conf.yaml
jobmanager.rpc.address: "server #1 IP"
Server #2 에도 Server #1의 IP를 입력해 줍니다.
Server #2 의 master / workers 파일은 작업 안해도 됩니다.
○ SSH 설정
Apache Flink Cluster 구성을 하기위해서는 SSH 자동접속이 가능해야 합니다.
Server #1 -> Server #2
Server #2 -> Server #1
로 접속을 할때 ID/Password 없이 접속이 가능해야합니다.
설정법은 다른 포스팅으로 하겠습니다.
○ Host 설정
Master 노드에서 Host 파일 설정을 해줘야합니다.
이거때문에 시간을 많이 뺏겼습니다.....
host 명에 127.0.1.1 같은 외부에서 접속이 불가능한 IP 가 있으면 안됩니다.
> vi /etc/hosts
127.0.0.1 localhost
192.168.40.10 server1
저는 기존에 "127.0.1.1 server1" 입력이 되있어서 소스 deploy 시 오류가 계속 났었습니다.
Server #1 에서만 하면 됩니다.
○ 실행
설정작업이 끝났으니 실행해 주면됩니다.
마스터 노드인 Server #1에서 실행합니다.
> ./bin/start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host server1.
Starting taskexecutor daemon on host server1.
Starting taskexecutor daemon on host server2.
실행 결과를 확인합니다.
관리자 web UI로 확인이 가능합니다.
"Available Task Slots" 이 2 로 되있으면 정상입니다.
소스를 Deploy 해보겠습니다.
관리자 UI 의 "Submit New Job" 메뉴에서 예제 소스를 실행할 수 있습니다.
실행시 Option 값 중에 "Parallelism" 값을 2로 입력합니다.
Server #1에서 명령어로도 가능합니다.
> ./bin/flink run -c main.MainClassName -p 2 src_example.jar
관리자 UI 의 "Task Managers" 메뉴에서 각각의 Worker가 정상적으로 실행됬는지 log로 볼 수 있습니다.
또는 서버내의 log 폴더에서 직접 볼 수 있습니다.
관리자 UI "Overview" 메뉴에서 "Available Task Slots"이 0으로 표시되야 정상입니다.
'공부 > Apache Flink' 카테고리의 다른 글
[Apache Flink] CEP-Complex Event Processing (0) | 2021.03.30 |
---|---|
[Apache Flink] DataStream API를 이용한 데이터 처리 (0) | 2021.03.30 |
[Apache Flink] 설치하기 (windows 10) (0) | 2021.03.16 |