Windows Server 2019에서 WSL을 사용하여 리눅스에 카프카 설치하기
- Windows Server 2019 Standard
- Version : 1809
- OS Build : 17763.5458
2023.12.20 - [인생은 실전/Kafka] - [Kafka] 리눅스에서 카프카 통신 연습하기 - ① : Hyper-v에서 Linux 설치 하기
지난번에 Hyper-v를 이용해 KAFKA를 설치하는 과정을 기록해 두었는데, 업무를 하면서 Hyper-v보다 더 쉽고 간편하게 가상환경(?)을 이용해서 Windows에서 리눅스를 사용할 수 있는 WSL 이란 기능을 알게 되었습니다.
그래서 Hyper-v는 모두 잊고! WSL을 이용해서 KAFKA를 설치하고 실행하는 과정을 기록해두고자 합니다.
업무에서 실제로 진행했던 방식을 기록하는 것이니 Microsoft에서 권장하는 방식과는 다소 다를 수 있습니다.
1. WSL & Ubuntu 설치 및 업데이트
1️⃣ Windows 빌드 정보 확인 및 업데이트 진행
Windows Server 2022는 간단한 명령어를 통해 WSL2를 설치 할 수 있다.
하지만 제가 설치한 Windows Server 2019는 WSL2를 설치 할 수 없으며 WSL1을 설치할려면 별도의 Linux 배포 파일을 다운로드 하여 설치 할 수 있습니다.
(Windows Server 2019 버전 1709, 빌드 16215 이상만 WSL 설치 가능)
위에 해당하는 버전과 빌드가 아닐경우 Windows 업데이트를 진행하도록 합니다.
2️⃣ PowerShell 명령어를 통한 WSL 설치
※ 아래의 명령어는 모두 PowerShell 관리자 모드로 실행 후 순차적으로 각각 입력해야 합니다.
1) WSL 활성화
- Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
2) WSL 설치
- dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
3) 가상머신 플랫폼 설치
- dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
4) WSL 설치 확인
- 기능에 "Linux용 Windows 하위 시스템"이 체크되어 있으면 정상적으로 설치가 완료 되었음을 알 수 있습니다.
3️⃣ Ubuntu 설치
Windows Server 2019인 경우 Microsoft Store가 없어 Ubuntu 파일을 직접 수동으로 받아서 설치해야 합니다.
수동 설치 링크 : https://learn.microsoft.com/ko-kr/windows/wsl/install-manual#downloading-distributions
Microsoft사에서 추천하는 설치 방식은 배포파일을 받아서 "Add-AppxPackage [파일명].appx" 명령어를 통해 실행하는 방식이였으나 저는 오류가 발생하여서 확장자를 zip으로 바꾸어서 압축을 풀었습니다.
위의 경로에서 파일을 받으면 appxbundle이라는 확장자의 파일로 받아지는데 이를 zip으로 변경 후 압축을 해제 합니다.
압축 해제 후 생성되는 appx 파일도 동일하게 zip으로 확장자를 변경하여 압축을 풀면 위와 같은 exe 파일이 나오는데 이를 실행하면 자동적으로 Ubuntu가 설치됩니다.
4️⃣ 패키지 업데이트 및 JAVA 설치
우분투가 정상적으로 설치 되고 나면 우분투 내에서 관리자 계정으로 변경하여 패키지 업데이트와 Java를 설치합니다.
root(관리자) 계정으로 변경 및 암호를 설정하는 명령어는 구(글)박사님께 여쭤봅시다.😊
1) 패키지의 버전 정보 업데이트
- sudo apt-get update
2) 패키지 업그레이드
- sudo apt-get upgrade
3) Java 설치
- sudo apt-get install openjdk-8-jdk
4) Java 설치 확인
- java -version
- javac -version
2. Kafka 설치 및 실행
1️⃣ KAFKA 설치
Java 설치와 동일하게 KAKFA 설치도 관리자(root)계정으로 진행합니다.
1) KAFKA 파일을 다운로드 하기 위하여 원하는 디렉토리 경로로 이동
별도로 폴더 및 파일에 권한을 부여하면 되지만 편의를 위해 관리자 계정으로 진행하였습니다.
2) KAFKA 파일 다운로드
- (명령어) wget --no-check-certificate https://dlcdn.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
시간의 경과에 따라 위 경로에 카프카 파일이나 해당 버전이 없을 수 있으니 다운로드 전 직접 확인하고 진행합니다.
3) KAFKA 압축 해제
- (명령어) tar xvf kafka_2.13-3.7.0.tgz
2️⃣ KAFKA 설정
카프카 설정하기 앞서 HOST와 WSL2 간에 포트포워딩을 해주어야 한다는 말도 있지만 Windows Server 2019의 경우 WSL1이고 HOST와 WSL간에 IP가 동일하기 때문에 별도의 포트포워딩 작업은 필요 없는것 같습니다.
(제가 이해하고 있는게 아니라면 피드백 부탁드립니다..🤣)
1) Config 폴더 내 server.properties 파일 접근
WSL은 윈도우 탐색기를 통해 손 쉽게 리눅스의 디렉토리로 접근 할 수 있습니다.
(별도의 리눅스 명령어를 쓰지 않아서 상당히 편리!!)
2) server.properties 파일 수정
프로듀서 및 컨슈머에게 노출할 브로커 서버 바인딩 주소 변경!
- advertised.listeners=PLAINTEXT://[ 서버 주소 ]:9092
※ 이 외 파티션 및 토픽, 주키퍼 관련 설정들은 필요에 따라서 수정 진행
(저는 작업할 당시에 별도로 수정을 하진 않았습니다.)
3) bin 폴더 내 ShellScript 파일 권한 변경
properties 파일은 권한을 변경해 줄 필요 없습니다.
- (명령어) chmod -R 755 [폴더명]
- (명령어) chmod 755 [파일명]
3️⃣ KAFKA 실행
1) 카프카 및 주키퍼 Start, Stop의 편의를 위한 ShellScript파일 생성
- 주키퍼 Start Script : [카프카 설치 경로]/bin/zookeeper-server-start.sh -daemon [카프카 설치 경로]/config/zookeeper.properties
- 주키퍼 Stop Script : [카프카 설치 경로]/bin/zookeeper-server-stop.sh
- 카프카 Start Script : [카프카 설치 경로]/bin/kafka-server-start.sh -daemon [카프카 설치 경로]/config/server.properties
- 카프카 Stop Script : [카프카 설치 경로]/bin/kafka-server-stop.sh
2) 생성한 ShellScript 파일 권한 변경
- (명령어) chmod 755 [파일명] → ex) chmod 755 z.start
3) 생성한 sh 파일을 통해 주키퍼와 카프카 실행
4️⃣ KAFKA 실시간 로그 보는 방법
카프카 실행 전에 실시간 로그창을 띄어 두면 실행과정 중에 발생하는 로그를 볼 수 있습니다.
(실제로 sh파일을 실행하면 별도의 출력 문구나 로그가 발생하지 않아서 정상적으로 동작하는지 파악하기 어렵습니다)
1) 카프카 설치 경로 내 logs 폴더 이동
2) 명령어를 통해 실시간 log 확인
- (명령어) tail -f server.log
'인생은 실전 > Kafka' 카테고리의 다른 글
[Kafka] 리눅스에서 카프카 통신 연습하기 - ① : Hyper-v에서 Linux 설치 하기 (1) | 2023.12.20 |
---|---|
[Kafka] 강제로 카프카(kafka) 및 주키퍼(Zookeeper) 서버 닫기 : NETSTAT / TASKKILL (0) | 2022.12.20 |
댓글