前提都安裝JDK 6版本以上
創新互聯是一家專業提供云巖企業網站建設,專注與成都網站制作、網站建設、成都h5網站建設、小程序制作等業務。10年已為云巖眾多企業、政府機構等服務。創新互聯專業網站設計公司優惠進行中。
java -version
java version "1.7.0_79"
測試環境集群結構(三臺集群的hosts一定要互相解析 不然會很坑)
server1: 192.168.100.10
server1: 192.168.100.13
server1: 192.168.100.20
安裝包:
zookeeper-3.4.9.tar.gz
kafka_2.11-0.10.1.0.tgz
背景:
為了獲得可靠的 ZooKeeper 服務,用戶應該在一個集群上部署 ZooKeeper 。只要集群上大多數的 ZooKeeper 服務啟動了,那么總的 ZooKeeper 服務將是可用的。另外,最好使用奇數臺機器。 如果 zookeeper 擁有 5 臺機器,那么它就能處理 2 臺機器的故障了。
### zookeeper的集群安裝##################
1、安裝包下載到/usr/local/src
2、解壓至安裝路徑/usr/localcd
cd /usr/local/src/
tar -xvf zookeeper-3.4.9.tar.gz -C /usr/local/
cd /usr/local
ln -s zookeeper-3.4.9/ zookeeper
3、修改配置文件
cd cd /usr/local/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
配置文件(每臺zookeeper的配置文件都一樣)
[root@master conf]# cat zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/zookeeper/data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
#第一個端口( port )是從( follower )機器連接到主( leader )機器的端口
#第二個端口是用來進行 leader 選舉的端口
server.1=192.168.100.10:2888:3888
server.2=192.168.100.13:2888:3888
server.3=192.168.100.20:2888:3888
### 注釋:
在這個文件中,我們需要指定 dataDir 的值,它指向了一個目錄,這個目錄在開始的時候需要為空。下面是每個參數的含義:
tickTime :基本事件單元,以毫秒為單位。它用來指示心跳,最小的 session 過期時間為兩倍的 tickTime. 。
dataDir :存儲內存中數據庫快照的位置,如果不設置參數,更新事務日志將被存儲到默認位置。
clientPort :監聽客戶端連接的端口
#server.A=B:C:D 其中A是一個數字,代表這是第幾號服務器;B是服務器的IP地址;C表示服務器與群集中的“領導者”交換信息的端口;當領導者失效后,D表示用來執行選舉時服務器相互通信的端口。
4、創建數據目錄和創建myid文件
mkdir /usr/local/zookeeper/data
echo "1" > /usr/local/zookeeper/data/myid
### 配置其他節點
myid要不一樣
5、啟動集群
按照上述進行配置即可。
第五步:啟動ZooKeeper集群
在ZooKeeper集群的每個結點上,執行啟動ZooKeeper服務的腳本,如下所示:
cd /usr/local/zookeeper/
bin/zkServer.sh start
bin/zkServer.sh start
bin/zkServer.sh start
查看日志:(日志生成在執行啟動的目錄下)
tail -f zookeeper.out
查看監聽的端口:(Leader端 才監聽2888 端口,follower是不監聽的,只監聽3888端口)
[root@agent zookeeper]# netstat -tulnp |grep 88
tcp 0 0 ::ffff:192.168.100.13:3888 :::* LISTEN 18526/java
tcp 0 0 ::ffff:192.168.100.13:2888 :::* LISTEN 18526/java
[root@agent zookeeper]# netstat -tulnp |grep 2181
tcp 0 0 :::2181 :::* LISTEN 18526/java
[root@agent zookeeper]#
6 驗證
./bin/zkServer.sh status
注釋: 因為啟動順序是從第一臺開始的 所以看日志第一臺會有日志因為第二臺第三臺還未啟動,一會就正常了忽略
看到各個角色(leader選舉出來表示集群正常) 通過上面狀態查詢結果可見,第二臺是集群的Leader,其余的兩個結點是Follower。
[root@agent zookeeper]# ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
7、測試客戶端命令連接
./bin/zkCli.sh -server 192.168.100.10:2181
連接上去之后:
執行命令
[zk: 192.168.100.10:2181(CONNECTED) 4] ls /
[zookeeper]
注: 當前根路徑為/zookeeper。
################# 安裝kafka
下載包
[root@master src]# ll kafka_2.11-0.10.1.0.tgz
-rw-r--r-- 1 root root 34373824 Oct 20 2016 kafka_2.11-0.10.1.0.tgz
1、解壓至安裝目錄
tar -xvf kafka_2.11-0.10.1.0.tgz -C /usr/local/
cd /usr/local/
ln -s kafka_2.11-0.10.1.0/ kafka
2、修改配置文件
cd /usr/local/kafka/config
vim server.properties
需要修改的項目:
# The id of the broker. This must be set to a unique integer for each broker
broker.id=1
# A comma seperated list of directories under which to store log files
log.dirs=/usr/local/kafka/logs
# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
zookeeper.connect=192.168.100.10:2181,192.168.100.13:2181,192.168.100.20:2181
注意:每臺kafka的broer.id 是不一樣的
3、創建日志目錄
mkdir /usr/local/kafka/logs
4、### 配置其他節點
5、啟動
從后臺啟動Kafka集群(3臺都需要啟動)
cd /usr/local/kafka/bin/ ./kafka-server-start.sh -daemon ../config/server.properties
[root@master bin]# jps
7449 Jps
7427 Kafka #kafka進程
31341 QuorumPeerMain #zk進程
如果(3個kafka進程都在表示正常,配置文件錯誤是服務起不了)
查看啟動日志:
tail -f /usr/local/kafka/logs/server.log
6、測試kafka集群
1-進入kafka根目錄,創建topic test
./bin/kafka-topics.sh --create --zookeeper 192.168.100.10:2181,192.168.100.13:2181,192.168.100.20:2181 --replication-factor 1 --partitions 1 --topic test
結果:
Created topic "test".
2-列出已創建的topic列表
./bin/kafka-topics.sh --list --zookeeper 192.168.100.10:2181,192.168.100.13:2181,192.168.100.20:2181
結果:
test
或者使用zookeeper命令去查看
./bin/zkCli.sh -server 192.168.100.10:2181
[zk: 192.168.100.10:2181(CONNECTED) 3] ls /brokers/topics
[test]
3-模擬客戶端去發送消息
./bin/kafka-console-producer.sh --broker-list 192.168.100.10:9092,192.168.100.13:9092,192.168.100.20:9092 --topic test
4-模擬客戶端去接受消息(雖然看到的是消費 但是因為消費么有刪除每次 執行之前的模擬信息還會看到)
./bin/kafka-console-consumer.sh --zookeeper 192.168.100.10:2181,192.168.100.13:2181,192.168.100.20:2181 --from-beginning --topic test
5、停止 在啟動(重啟)
集群依次kafka都需要停止
./bin/kafka-server-stop.sh
集群依次kafka都需要啟動
cd /usr/local/kafka/bin/ ./kafka-server-start.sh -daemon ../config/server.properties
6、 刪除測試的test 的那個topic
./bin/kafka-topics.sh --delete --zookeeper 192.168.100.10:2181,192.168.100.13:2181,192.168.100.20:2181 --topic test
結果
Topic test is marked for deletion.
Note: This will have no impact if delete.topic.enable is not set to true.
因為:
如果kafaka啟動時加載的配置文件中server.properties沒有配置(默認沒有配置 默認值為false)delete.topic.enable=true,那么此時的刪除并不是真正的刪除,而是把topic標記為:marked for deletion
徹底刪除進入zk
./bin/zkCli.sh -server 192.168.100.10:2181
rmr /brokers/topics/test
網頁題目:zookeeper和kafka的安裝使用
網頁URL:http://m.newbst.com/article30/gdospo.html
成都網站建設公司_創新互聯,為您提供網站設計公司、Google、網站策劃、電子商務、ChatGPT、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯