03.Installation,ClusterConfiguration

Apache Kafka Cluster ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ

  1. Confluent Platform(CP) ์‚ฌ์šฉ

  2. Ubuntu 18.04 ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰

  3. Production ํ™˜๊ฒฝ์„ ๊ฐ€์ •(Zookeeper 3 ๋Œ€, Broker 3 ๋Œ€, Control Center1) 1 ๋Œ€ ๊ตฌ์„ฑ)

    1. Kafka Broker 1 ๊ฐœ๋งŒ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ(๊ฐœ๋ฐœ ํ™˜๊ฒฝ), ๋ฌด๋ฃŒ๋กœ ๋ชจ๋“  ๊ธฐ๋Šฅ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

    2. Broker 2๊ฐœ ์ด์ƒ์˜ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๊ตฌ์„ฑํ•  ๊ฒฝ์šฐ, 30์ผ ๊ธฐํ•œ์˜ ๋ผ์ด์„ ์Šค๊ฐ€ ์ž๋™ ์ƒ์„ฑ

    3. ๊ณ„์† ์‚ฌ์šฉ์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ ๋ผ์ด์„ ์Šค๋ฅผ ๊ตฌ๋งคํ•ด์•ผ ํ•จ

  4. Confluent Platform์˜ ์‹œ์Šคํ…œ ์š”๊ตฌ์‚ฌํ•ญ์„ ํ™•์ธํ•  ๊ฒƒhttps://docs.confluent.io/platform/current/installation/system-requirements.html

  5. OpenJDK ํ˜น์€ OracleJDK 1.8 / 1.11 ์‚ฌ์šฉ ๊ฐ€๋Šฅ(๋ณธ ๊ฐ•์˜์—์„œ๋Š” 1.8 ๋ฒ„์ „ ์‚ฌ์šฉ)

  6. ๋จธ์‹  ๊ฐ„ NTP ์‹œ๊ฐ„ ๋™๊ธฐํ™”

[Download URL]

https://www.confluent.io/get-started

Kafka ์„ค์น˜๋ฅผ ์œ„ํ•œ OS ๊ด€๋ จ ๊ตฌ์„ฑ

  1. Linux ๊ณ„์ • ์ƒ์„ฑ

    Confluent Platform(Apache Kafka)์€ Linux ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ : ๊ด€๋ฆฌ ํŽธ์˜์„ฑ์„ ์œ„ํ•ด ๋ณ„๋„์˜ ๊ณ„์ • ์ƒ์„ฑ์„ ๊ถŒ์žฅ

    ๊ทธ๋ฃน ์ƒ์„ฑ : ์˜ˆ) groupadd confluent
    ์‚ฌ์šฉ์ž ์ƒ์„ฑ : ์˜ˆ) useradd -g confluent confluent
    
    RHEL, CentOS, Debian, Ubuntu ์ง€์›
    XFS File System ์‚ฌ์šฉ
  2. JDK ๊ตฌ์„ฑ

    OpenJDK ํ˜น์€ Oracle JDK 1.8.0_202(64bit)๋ฅผ ๋‹ค์šด๋กœ๋“œ๋ฐ›์€ ํ›„, ๋กœ๊ทธ์ธํ•œ ๊ณ„์ •์˜ Home ๋””๋ ‰ํ† ๋ฆฌ์— ์••์ถ•ํŒŒ์ผ์„ ์˜ฎ๊ธฐ๊ณ  ํ•ด๋‹นํŒŒ์ผ์˜ ์••์ถ•์„ ํ•ด์ œ Linux ๊ณ„์ •์˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜์— Java Home ์ง€์ •ํ•˜๊ณ  bin ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ PATH์— ์ถ”๊ฐ€

    $ vi ~/.bashrc
    export JAVA_HOME=/home/confluent/jdk1.8.0_202 #์••์ถ•ํŒŒ์ผ์„ ํ‘ผ ๊ฒฝ๋กœ
    export PATH=${JAVA_HOME}/bin:${PATH}
    $ vi ~/.bash_profile
    source ~/.bashrc
    $ source ~/.bashrc #ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ ์šฉ

Confluent Platform ์„ค์น˜

  1. Confluent Platform ์••์ถ• ํŒŒ์ผ์˜ ์••์ถ• ํ•ด์ œ

Confluent Platform ZIP ํŒŒ์ผ์„ ํ™ˆ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณต์‚ฌํ•œ ๋‹ค์Œ, ์••์ถ•์„ ํ•ด์ œ

๊ณ„์ •์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— Confluent Platform Home์„ ์ง€์ •ํ•˜๊ณ  bin ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ PATH์— ์ถ”๊ฐ€

Zookeeper Node ๊ตฌ์„ฑ

${CONFLUENT_HOME}/etc/kafka/zookeeper.properties ํŒŒ์ผ ๋‚ด์˜ ์ค‘์š”ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ

  • Zookeeper Node๋“ค์€ ๊ตฌ์„ฑ ํŒŒ์ผ์ด ๋™์ผํ•ด์•ผ ํ•จ

  • clientPort = broker๊ฐ€ zookeeper์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•œ port

  • dataDir ํŒŒ๋ผ๋ฏธํ„ฐ์— ์„ค์ •ํ•œ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, Linux ๊ณ„์ •(confluent)์„ ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์†Œ์œ ์ž๋กœ ์„ค์ •

  • server.<myid>=<hostname>:<leaderport>:<electionport>

    • myid : ์„œ๋ฒ„์‹๋ณ„๋ฒˆํ˜ธ โ†’ dataDir์— โ€œmyidโ€๋ผ๋Š” ์ด๋ฆ„์˜ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  myid ๊ฐ’(์˜ˆ, 1 ๋˜๋Š” 2 ๋˜๋Š” 3)์„ ์ž…๋ ฅ ํ›„ ์ €์žฅ

    • hostname : DNS ๋˜๋Š” /etc/hosts ์— ๋“ฑ๋ก๋œ zookeeper node์˜ hostname

    • leaderport : Follower๊ฐ€ Leader์— ์—ฐ๊ฒฐ๋˜๋Š”๋ฐ ์‚ฌ์šฉ (๋ชจ๋“  zookeeper node ๊ฐ„ ์—ฐ๊ฒฐ๋˜์–ด์•ผ ํ•จ)

    • electionport : Zookeeper Leader ์„ ์ถœ์— ์‚ฌ์šฉ (๋ชจ๋“  zookeeper node ๊ฐ„์— ์—ฐ๊ฒฐ๋˜์–ด์•ผ ํ•จ)

Broker Node ๊ตฌ์„ฑ

${CONFLUENT_HOME}/etc/kafka/server.properties ํŒŒ์ผ ๋‚ด์˜ ์ค‘์š”ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ

  • zookeeper.connect : Broker์—์„œ Zookeeper ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ zookeeper1:2181์—์„œ zookeeper1์€ DNS ๋˜๋Š” /etc/hosts ์— ๋“ฑ๋ก๋œ zookeeper node์˜ hostname

  • broker.id : ์ •์ˆ˜๋กœ ํ‘œํ˜„๋˜๋Š” ์ˆซ์ž : ๊ฐ™์€ Kafka cluster ๋‚ด์˜ Broker๋“ค์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ณ ์œ ํ•œ broker.id๋ฅผ ๊ฐ€์ ธ์•ผ ํ•จ

  • log.dirs ํŒŒ๋ผ๋ฏธํ„ฐ์— ์„ค์ •ํ•œ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, Linux ๊ณ„์ •(confluent)์„ ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์†Œ์œ ์ž๋กœ ์„ค์ •

  • listeners : Broker๊ฐ€ ์ˆ˜์‹ ํ•  URI์˜ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชฉ๋ก broker1์€ DNS ๋˜๋Š” /etc/hosts ์— ๋“ฑ๋ก๋œ broker1 node์˜ hostname kafka client๊ฐ€ Broker node์™€ ์—ฐ๊ฒฐํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ •๋ณด

Control Center Node ๊ตฌ์„ฑ

${CONFLUENT_HOME}/etc/confluent-control-center/control-center-production.properties ํŒŒ์ผ ๋‚ด์˜ ์ค‘์š”ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ

  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ: 1๋Œ€๋กœ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ

  • ์šด์˜ ํ™˜๊ฒฝ: 2๋Œ€ ์ด์ƒ Machine์ƒ์— ์„ค์น˜,๊ตฌ์„ฑ ๊ถŒ์žฅ(HA ๋ชฉ์ )

  • Control Center๋Š” Zookeeper ๋ฐ Broker์™€ ๋ณ„๊ฐœ์˜ ๋จธ์‹ ์— ์„ค์น˜, ๊ตฌ์„ฑํ•ด์•ผ ํ•จ

Confluent Platform ์‹คํ–‰

  1. Zookeeper ์‹คํ–‰ (3 ๋Œ€์˜ Zookeeper Node์—์„œ ์‹คํ–‰)

2. Kafka Broker ์‹คํ–‰ (3 ๋Œ€์˜ Broker Node์—์„œ ์‹คํ–‰)

3. Control Center ์‹คํ–‰ (1 ๋Œ€์˜ Control Center Node์—์„œ ์‹คํ–‰)

nohup ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ ๋ฐ ์‹คํ–‰

nohup Scripts

no hangups ๋ผ๋Š” ์˜๋ฏธ๋กœ, Linux/UNIX ์—์„œ Shell Script ๋ฅผ ๋ฐ๋ชฌ ํ˜•ํƒœ๋กœ ์‹คํ–‰์‹œํ‚ค๋Š” ๋ช…๋ น์–ด.

๋ณ„๋„์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑ ํ›„ nohup ๋ช…๋ น์–ด script๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ

ex)

  • start_[์‹คํ–‰ํ•  component ๋ช…].sh

  • stop_[์‹คํ–‰ํ•  component ๋ช…].sh

  • log_[์‹คํ–‰ํ•  component ๋ช…].sh

๊ฐ script๋Š” ๊ฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฐ ๋จธ์‹ ์—์„œ๋งŒ ์ž‘์„ฑ(์˜ˆ, Broker ๋จธ์‹ ์—๋Š” Broker์šฉ ์Šคํฌ๋ฆฝํŠธ๋งŒ ์ž‘์„ฑ)

  • confluent ๊ณ„์ •์˜ Home ๋””๋ ‰ํ† ๋ฆฌ์—์„œ bin ํด๋” ์ƒ์„ฑ ํ›„ bin ํด๋”๋กœ ์ด๋™, ์ž‘์„ฑ ํ›„ ์‹คํ–‰๊ถŒํ•œ ๋ถ€์—ฌ

  • ์‹คํ–‰ ๊ถŒํ•œ ๋ถ€์—ฌ (start ์Šคํฌ๋ฆฝํŠธ์˜ ์˜ˆ)

Zookeeper์šฉ Start nohup ์Šคํฌ๋ฆฝํŠธ

Zookeeper์šฉ Start nohup ์Šคํฌ๋ฆฝํŠธ

Zookeeper์šฉ Stop nohup ์Šคํฌ๋ฆฝํŠธ

$ vi stop_zookeeper1.sh

Broker์šฉ Start nohup ์Šคํฌ๋ฆฝํŠธ

$ vi start_broker1.sh

Broker์šฉ Stop nohup ์Šคํฌ๋ฆฝํŠธ

$ vi stop_broker1.sh

Control Center์šฉ Start nohup ์Šคํฌ๋ฆฝํŠธ

$ vi start_c3.sh

Control Center์šฉ Stop nohup ์Šคํฌ๋ฆฝํŠธ

$ vi stop_c3.sh

Last updated