리그캣의 개발놀이터

[Kafka] Kafka on Mesos 구축 본문

프로그래밍 기본/서버 구축 및 관리

[Kafka] Kafka on Mesos 구축

리그캣 2019. 2. 12. 17:19


Kafka on Mesos를 구축하여야 하여


이것 저것 구글링을하였다..


자료가 많지 않았지만 참고 할 사이트는 아래와 같았다.


메소스피어 에서 공유해주신 글


MASON? 님의 글


그리고 Github read.me이다.


https://github.com/mesos/kafka


항상 느끼지만 블로글 글을 보다가 너무 안되면 github이나 정식글을 보는것이 도움이 된다.


나는 github을 중심으로 글을 작성하겠다.


marathon에 바로 올릴려 하였지만 맨 첫번째 링크에서는 그렇게 하지 말라고 되어있던것 같았다.


이유는 두가지 문제점이있었는데 번역해서 읽어보는것도 많은 도움이 되니 패스..(사실 귀찮아서)


먼저 kafka on mesos를 구축하기 위해서는 다음 두가지가 필요하다.


1. open jdk 설치 : http://openjdk.java.net/install/

2. gradle 설치 : https://www.vultr.com/docs/how-to-install-gradle-on-centos-7


해당 링크를 따라해보길 바란다.


설치가 되어있다면 바로 진행하면된다.


# git clone https://github.com/mesos/kafka
# cd kafka
# ./gradlew jar downloadKafka



# export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so
# ./kafka-mesos.sh help scheduler
Start scheduler
Usage: scheduler [options] [config.properties]

Option               Description
------               -----------
--api                Api url. Example: http://master:7000
--bind-address       Scheduler bind address (master, 0.0.0.0, 192.168.50.*, if:eth1). Default - all
--debug <Boolean>    Debug mode. Default - false
--framework-name     Framework name. Default - kafka
--framework-role     Framework role. Default - *
--framework-timeout  Framework timeout (30s, 1m, 1h). Default - 30d
--jre                JRE zip-file (jre-7-openjdk.zip). Default - none.
--log                Log file to use. Default - stdout.
--master             Master connection settings. Examples:
                      - master:5050
                      - master:5050,master2:5050
                      - zk://master:2181/mesos
                      - zk://username:password@master:2181
                      - zk://master:2181,master2:2181/mesos
--principal          Principal (username) used to register framework. Default - none
--secret             Secret (password) used to register framework. Default - none
--storage            Storage for cluster state. Examples:
                      - file:kafka-mesos.json
                      - zk:/kafka-mesos
                     Default - file:kafka-mesos.json
--user               Mesos user to run tasks. Default - none
--zk                 Kafka zookeeper.connect. Examples:
                      - master:2181
                      - master:2181,master2:2181

마지막으로 kafka-mesos.properties: 를 구성해 주면된다.



두가지 방법이 있었다.


storage=file:kafka-mesos.json
master=zk://master:2181/mesos
zk=master:2181
api=http://master:7000
storage=zk:/kafka-mesos
master=zk://master:2181/mesos
zk=zookeep1:2181,zookeep2:2181,zookeep3:2181/KafkaCluster
api=http://master:7000

나는 아래 방법으로 구성하였다.


# ./kafka-mesos.sh scheduler

scheduler를 실행하니...먼가 실행되는 것 같긴 하다만...


어찌어찌 주키퍼는 연동된것같다. 나머지는 보안때문에 캡처하지 않았다..



추가적으로 깃헙의 내용을 따라하여 broker를 추가해주고 연동 테스트를 해보면될것같다..

Comments