CentOS安裝Kafka集羣

***關於Kafka(單機版)的下載、安裝、配置、啓動、測試等,請參考另外一篇文章:***CentOS安裝Kafkashell

搭建集羣只需在此基礎上增長一些配置,本文也主要介紹這些和集羣相關的配置,其餘步驟再也不贅述bootstrap

假設節點數爲3,ip分別爲:10.20.1.52,10.20.1.53,10.20.1.54vim

1、配置

一、先安裝並配置其中一臺機器(10.20.1.52)
修改server.properties
shell> cd /usr/local/kafka_2.12-2.2.0/
shell> vim config/server.properties
複製代碼

編輯如下內容bash

############################# Server Basics #############################

# 3個節點此處分別設置爲:broker.id=1,broker.id=2,broker.id=3
broker.id=1

############################# Socket Server Settings #############################

# 3個節點此處分別設置爲:PLAINTEXT://10.20.1.52:9092,PLAINTEXT://10.20.1.53:9092,PLAINTEXT://10.20.1.54:9092
listeners=PLAINTEXT://10.20.1.52:9092
# 3個節點此處分別設置爲:PLAINTEXT://10.20.1.52:9092,PLAINTEXT://10.20.1.53:9092,PLAINTEXT://10.20.1.54:9092
advertised.listeners=PLAINTEXT://10.20.1.52:9092

############################# Log Basics #############################

# 默認爲/tmp/kafka-logs,可能會被刪掉
log.dirs=/usr/local/kafka_2.12-2.2.0/logs

############################# Zookeeper #############################

# 末尾的/kafka可選,可是建議配置上,由於註冊到ZooKeeper的除了kafka可能還有其餘服務,增長根目錄便於區分
zookeeper.connect=10.20.1.52:2181,10.20.1.53:2181,10.20.1.54:2181/kafka
複製代碼
二、複製到其餘節點(10.20.1.53,10.20.1.54)

第一臺機器配置好之後,直接複製到其餘節點而後稍加修改便可(固然,若是你願意,也能夠按照相同的步驟再重複安裝配置一次,注意修改server.properties的內容便可)markdown

shell> scp -r /usr/local/kafka_2.12-2.2.0/ root@10.20.1.53:/usr/local/
shell> scp -r /usr/local/kafka_2.12-2.2.0/ root@10.20.1.54:/usr/local/
複製代碼

而後分別修改其餘兩臺機器上的配置文件(server.properties)post

shell> cd /usr/local/kafka_2.12-2.2.0/
shell> vim config/server.properties
複製代碼
# 10.20.1.53
broker.id=2
listeners=PLAINTEXT://10.20.1.53:9092
advertised.listeners=PLAINTEXT://10.20.1.53:9092
複製代碼
# 10.20.1.54
broker.id=3
listeners=PLAINTEXT://10.20.1.54:9092
advertised.listeners=PLAINTEXT://10.20.1.54:9092
複製代碼

2、啓動

分別啓動3個Kafka節點測試

shell> cd /usr/local/kafka_2.12-2.2.0
shell> bin/kafka-server-start.sh -daemon config/server.properties
複製代碼

若是使用kafka-manager,須要開啓JMX_PORTspa

shell> JMX_PORT=9999 bin/kafka-server-start.sh -daemon config/server.properties
複製代碼

3、測試

一、查看ZooKeeper註冊信息
shell> cd /usr/local/zookeeper-3.5.3-beta/
shell> bin/zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[kafka, test, zookeeper]
[zk: localhost:2181(CONNECTED) 1] ls /kafka
[admin, brokers, cluster, config, consumers, controller, controller_epoch, isr_change_notification, latest_producer_id_block, log_dir_event_notification]
[zk: localhost:2181(CONNECTED) 2] ls /kafka/brokers
[ids, seqid, topics]
[zk: localhost:2181(CONNECTED) 3] ls /kafka/brokers/ids
[1, 2, 3]
複製代碼

其中,1,2,3即爲3臺kafka節點server.properties中配置的broker.id的值code

二、kafka命令

第一臺機器(10.20.1.52)建立topicorm

shell> bin/kafka-topics.sh --create --bootstrap-server 10.20.1.52:9092 --replication-factor 3 --partitions 1 --topic test

# 查看集羣的topic詳情,也能夠分別鏈接另外兩臺機器查看topic是否已同步
shell> bin/kafka-topics.sh --describe --bootstrap-server 10.20.1.52:9092 --topic test 
Topic:test      PartitionCount:1        ReplicationFactor:3     Configs:segment.bytes=1073741824
        Topic: test     Partition: 0    Leader: 1       Replicas: 1,2,3 Isr: 1,2,3
複製代碼

第二臺機器(10.20.1.53)發送消息

bin/kafka-console-producer.sh --broker-list 10.20.1.53:9092 --topic test
>Hello
>World
複製代碼

第三臺機器(10.20.1.54)消費消息

bin/kafka-console-consumer.sh --bootstrap-server 10.20.1.54:9092 --topic test --from-beginning
Hello
World
複製代碼
相關文章
相關標籤/搜索