WSL Kafka setting

신석진( Seokjin Shin)·2021년 7월 6일
0

WSL

목록 보기
2/6
post-thumbnail

2021/07/21 기준
wsl2_kafka.bat을 사용하는 윈도우 스케줄 부분(3)은 최신 포스트에 WSL 스크립트를 활용한 더 나은 방식을 소개하였다.

설정

  1. Kafka는 java를 기반으로 한다. 때문에 java는 필수로 다운 받는다.
apt update
apt install default-jdk 
  1. wget으로 kafka 받은 후 압축 해제.
bash -c "cd ~;wget https://mirror.navercorp.com/apache/kafka/2.8.0/kafka_2.13-2.8.0.tgz;tar -xzf kafka_2.13-2.8.0.tgz;rm kafka_2.13-2.8.0.tgz;cd kafka_2.13-2.8.0/;"
  1. server.property에서 아래의 값 수정. ${hostname}에 consumer와 producer들에게 제공할 hostname 혹은 public ip 입력. 해당 포트를 wsl2_network.ps1 파일에 추가한다.
vi config/server.properties

#server.property
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://${hostname}:9092
listener.security.protocol.map=PLAINTEXT:PLAINTEXT
  1. windows에서 C:\wsl2_kafka\wsl2_kafka.bat 파일 생성
md C:\wsl2_kafka&echo @echo off^&bash -c "cd ~/kafka_2.13-2.8.0/;sudo bin/kafka-server-stop.sh;sleep 10;sudo bin/zookeeper-server-stop.sh;sleep 10;sudo bin/zookeeper-server-start.sh -daemon config/zookeeper.properties;sleep 30;sudo bin/kafka-server-start.sh -daemon config/server.properties;" > C:\wsl2_kafka\wsl2_kafka.bat
  1. schtasks로 스케줄러에 등록. username을 입력한 후 패스워드를 입력한다.
schtasks /create /ru username /rp /sc onstart /tn wsl2_kafka /tr C:\wsl2_kafka\wsl2_kafka.bat /rl highest
  1. 아래의 명령어를 순차적으로 기입하여 kafka 폴더에 sudo 명령시 비밀번호 입력 안하도록 설정.
bash
cd ~
su
echo "%sudo ALL=NOPASSWD: $(pwd)/kafka_2.13-2.8.0/bin/*" >> /etc/sudoers
  1. 재시작 후에 카프카 서버가 실행된다.
shutdown -r -t 0

0개의 댓글