백엔드 개발 이모저모/kafka by python

02. Kafka/ZooKeeper GUI - CMAK 사용해보기

코딩균 2022. 1. 22. 01:42

kafka/bin

kafka의 bin 디렉토리에 들어가보면 여러가지 kafka 관련 스크립트 파일이 있다

이 스크립트 파일을 쉽게 사용할 수 있는 GUI가 있다

 

https://github.com/yahoo/CMAK 

 

GitHub - yahoo/CMAK: CMAK is a tool for managing Apache Kafka clusters

CMAK is a tool for managing Apache Kafka clusters. Contribute to yahoo/CMAK development by creating an account on GitHub.

github.com

 

CMAK(Cluster Manager for Apache Kafka)

kafka manager라고 볼 수 있다

  • cluster 생성
  • topic 생성
  • partition 생성
  • consumer group 생성

등등 여러가지 kafka 일들을 GUI를 통해 할 수 있다

 

1. CMAK git clone 해오기

 

2. sbt를 통해 컴파일하여 zip파일 만들어주기

sbt를 통해서 파일을 컴파일 해주어 zip 파일을 최종적으로 생성해준다

오류가 나왔다..!

https://github.com/yahoo/CMAK/issues/849

 

Problem in installing CMAK in Macos · Issue #849 · yahoo/CMAK

my current setup is: mac os version: 10.15.7 java installed version (JDK): java 16.0.1 when I run the command ./sbt clean dist it gives Cannot use JVMCI compiler: No JVMCI compiler found

github.com

CMAK sbt 관련 issue인데 원래 java 11이 설치되어 있어야 zip 된다고 한다

java 11 설치하기 시간이 오래 걸려서 위의 방법대로 해결했다

brew install sbt

sbt clean dist

 

해당 방법은 java 11을 깔고서도, 환경변수를 설정해도 안되면 시도해보자! 결국 java 11로 컴파일을 하지 않으면 나중에 cmak 접속이 안된다

 

 

3. unzip 하기

sbt?를 하게되면 target 디렉토리가 생성된다

target/universal/cmak-3.0.XX.zip 을 unzip 해준다

 

4. CMAK config 설정

application.conf에서 

cmak.zkhosts = "zookeeper가 실행되는 컴퓨터의ip : 2181" 을 설정해주어야 함

 

5. CMAK 실행하기

target/universal/cmak-3.0.0.5/

CMAK을 실행시키는 port는 자신이 원하는 번호로 설정해주어도 된다

(통상 spring 프로젝트가 8080을 사용하기 때문에 실제 프로젝트에서는 다른 포트를 써야겠다는 생각이 든다)

 

 

실행 순서 정리

ZooKeeper -> Kafka -> CMAK

zookeeper 실행

 

kafka 실행

하지만 결국 CAMK에서 실행이 오류가 난다..!

CMAK을 실행 후 127.0.0.1:8080으로 접속하면 CMAK GUI가 떠야 하는데 

서버가 error을 내뱉으며 종료된다

CMAK 실행 에러

오류 메시지를 읽어보니 결국은 JAVA version의 오류인 것 같다

java 11을 권장한다고 하면 그냥 말 듣는게 나은거 같다..! 창조자 말은 약손이다

CMAK 실행

java 11 openjdk를 brew를 통해 다운 하고 (나는 mac사용한다) 

~/.zshc 에서 환경변수까지 설정한 후 (zsh을 쉘로 사용한다) 

다시 sdt 부터 했더니 오류 없이 깔끔하게 CMAK에 접속할 수 있었다

http://localhost:8080 접속한 화면

 

다음부터는 cluster를 만들고 topic을 만들고 partition을 만들어서

실제로 kafka를 python을 가지고 사용하는 포스팅을 하고자 한다