集羣部署

ZooKeeper和Kafka集羣部署

ZooKeeper集羣部署

準備三臺機器搭建集羣,全部命令都在三臺機器上運行java

基礎環境配置

主機名配置

# hostnamectl set-hostname zookeeper1bash

# hostnamectl set-hostname zookeeper2服務器

# hostnamectl set-hostname zookeeper3ide

# bash    重啓生效測試

配置文件

三臺機器修改3d

# vi /etc/hostsserver

搭建集羣

安裝環境

三臺機器安裝JDK環境blog

# yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel進程

查看java版本部署

# java -version

解壓軟件包 

將zookeeper壓縮包上傳到三臺機器的/root目錄,進行解壓

# tar -zxvf zookeeper-3.4.14.tar.gz

修改配置文件

修改三臺機器的配置文件

# cd zookeeper-3.4.14/conf 

# mv zoo_sample.cfg zoo.cfg

在文件最後加入三行

# vi zoo.cfg

initLimit:ZooKeeper集羣模式下包含多個zk進程,其中一個進程爲leader,餘下的進程爲follower。當follower最初與leader創建鏈接時,它們之間會傳輸至關多的數據,尤爲是follower的數據落後leader不少。initLimit配置follower與leader之間創建鏈接後進行同步的最長時間

syncLimit:配置follower和leader之間發送消息,請求和應答的最大時間長度

tickTime:tickTime則是上述兩個超時配置的基本單位,例如對於initLimit,其配置值爲5,說明其超時時間爲 2000ms * 5 = 10秒

server.id=host:port1:port2:其中id爲一個數字,表示zk進程的id,這個id也是dataDir目錄下myid文件的內容。host是該zk進程所在的IP地址,port1表示follower和leader交換消息所使用的端口,port2表示選舉leader所使用的端口

dataDir:其配置的含義跟單機模式下的含義相似,不一樣的是集羣模式下還有一個myid文件。myid文件的內容只有一行,且內容只能爲1 - 255之間的數字,這個數字亦即上面介紹server.id中的id,表示zk進程的id

建立myid文件

在三臺機器上建立myid文件

# mkdir /tmp/zookeeper

# vi /tmp/zookeeper/myid

文件裏的數字爲zoo.cfg的指定值,第二臺機器爲2,第三臺爲3

啓動服務

關閉三臺機器的防火牆

# systemctl stop firewalld

啓動zookeeper服務

# cd zookeeper-3.4.14/bin 

# ./zkServer.sh start

查看啓動狀態

# ./zkServer.sh status

兩臺機器爲follower,一臺爲leader

Kafka集羣部署 

kafka服務依賴於zookeeper服務。因此用搭建過zookeeper集羣的三臺機器進行構建kafka集羣。全部命令都在三臺機器上運行

搭建集羣

解壓軟件包

將kafka壓縮包上傳到三臺機器的/root目錄,進行解壓

# tar -zxvf kafka_2.11-1.1.1.tgz

修改配置文件

在三臺機器上修改配置文件

# cd kafka_2.11-1.1.1/config

# vi server.properties

將配置文件中如下兩行註釋掉(在文本前加#)

#broker.id=0

#zookeeper.connect=localhost:2181

在文件底部添加配置

第一臺機器

第二臺機器

第三臺機器

broker.id:每臺機器不能同樣

zookeeper.connect:有3臺ZooKeeper服務器

listeners:在配置集羣的時候,必須設置,否則之後的操做會報找不到leader的錯誤。

啓動服務

在三臺機器上啓動服務

# cd kafka_2.11-1.1.1/bin

# ./kafka-server-start.sh -daemon ../config/server.properties

查看服務

# jps

第一臺機器

第二臺機器

第三臺機器

測試服務 

# cd kafka_2.11-1.1.1/bin

在第一臺機器建立topic命令

# ./kafka-topics.sh --create --zookeeper 192.168.37.12:2181 --replication-factor 1 --partitions 1 --topic test

成功輸出「Created topic "test"

在第二臺和第三臺機器分別測試查看topic

# ./kafka-topics.sh --list --zookeeper 192.168.37.13:2181

# ./kafka-topics.sh --list --zookeeper 192.168.37.14:2181

成功輸出test

相關文章
相關標籤/搜索