centos7搭建Linux集群,CentOS 7下Kafka集群安装
一、環境操作系統和軟件版本介紹
1.環境操作系統為CentOS Linux release 7.2.1511 (Core)
可用cat /etc/RedHat-release查詢
2.軟件版本
Kafka版本為:0.10.0.0
二、軟件的基礎準備
由于Kafka集群需要依賴ZooKeeper集群來協同管理,所以需要事先搭建好ZK集群。此文主要介紹搭建Kafka集群環境。
三、詳細安裝搭建步驟
1.下載壓縮包kafka_2.10-0.10.0.0.tgz到/data/soft目錄
2.將kafka_2.10-0.10.0.0.tgz解壓到/data/app/Kafka目錄
tar –xzf kafka_2.10-0.10.0.0.tgz –C /data/app/kafkacluster
把文件夾重命名為19092,進入config目錄,修改server.properties文件
3.用vi命令打開server.properties
1 [root@centos7 config]# vi server.properties
4.修改如下:
1 broker.id=0
2 port=19092
3 log.dirs=/data/app/kafkacluster/19093/bin/kafka-logs190924 zookeeper.connect=192.168.1.18:3001,192.168.1.18:3002,192.168.1.18:3003
其他兩臺服務器上的kafka同上,先修改文件夾名稱(在此文另外兩個文件夾名稱為19093和19094)
再進入config目錄,分別改server.properties名稱為server1.properties和server2.properties
server1.properties中的配置需要改:
1 broker.id=1
2 port=19093
3 log.dirs=/data/app/kafkacluster/19093/bin/kafka-logs190934 zookeeper.connect=192.168.1.18:3001,192.168.1.18:3002,192.168.1.18:3003
server2.properties中的配置需要改:
1 broker.id=2
2 port=19094
3 log.dirs=/data/app/kafkacluster/19094/bin/kafka-logs190944 zookeeper.connect=192.168.1.18:3001,192.168.1.18:3002,192.168.1.18:3003
四、啟動kafka&測試驗證
1.首先啟動獨立的ZK集群,三臺都要啟動(./zkServer.sh start)
2.進入到kafka的bin目錄,然后啟動服務./kafka-server-start.sh ../config/server.properties (三臺服務器都要啟動)
1 ./kafka-server-start.sh ../config/server1.properties2 ./kafka-server-start.sh ../config/server2.properties
另外,啟動其他節點的時候,在最先開始啟動的節點會顯示其它節點加入的信息記錄,如下所示:
1 [2017-01-18 14:44:24,352] INFO Partition [aaa,0] on broker 0: Expanding ISR for partition [aaa,0] from 0 to 0,1(kafka.cluster.Partition)2 [2017-01-18 14:44:37,065] INFO Partition [aaa,0] on broker 0: Expanding ISR for partition [aaa,0] from 0,1 to 0,1,2 (kafka.cluster.Partition)
3.驗證啟動進程
1 [root@centos7 bin]# jps2 25778Kafka3 26132Jps4 25285Kafka5 25014QuorumPeerMain6 25064QuorumPeerMain7 25531Kafka8 25116 QuorumPeerMain
4.使用客戶端進入zk
1 [root@centos7 bin]# ./zkCli.sh -server 192.168.1.18:3001
2 Connecting to 192.168.1.18:3001
5.查看目錄情況
1 [zk: 192.168.1.18:3001(CONNECTED) 0] ls /
2 [controller_epoch, controller, brokers, zookeeper, test, admin, isr_change_notification, consumers, config]3 [zk: 192.168.1.18:3001(CONNECTED) 1]
上面的顯示結果中:只有zookeeper是zookeeper原生的,其他都是Kafka創建的
6. 創建一個topic:
1 [root@centos7 bin]# ./kafka-topics.sh --create --zookeeper 192.168.1.18:3001,192.168.1.18:3002,192.168.1.18:3003 --replication-factor 3 --partitions 1 --topic test6662 Created topic "test666".
7. 查看topic狀態:
1 [root@centos7 bin]# ./kafka-topics.sh --describe --zookeeper 192.168.1.18:3001,192.168.1.18:3002,192.168.1.18:3003 --topic test6662 Topic:test666 PartitionCount:1 ReplicationFactor:3Configs:3 Topic: test666 Partition: 0 Leader: 0 Replicas: 0,2,1 Isr: 0,2,1
輸出參數解釋:
第一行是對所有分區的一個描述,然后每個分區都會對應一行,因為我們只有一個分區所以下面就只加了一行。
Leader:負責處理消息的讀和寫,Leader是從所有節點中隨機選擇的。
Replicas:列出了所有的副本節點,不管節點是否在服務中
Isr:是正在服務中的節點
由上可見,此時的leader是0
下文會kill 0,看leader是否更改
8.往test666中發送消息:
1 [root@centos7 bin]# ./kafka-console-producer.sh --broker-list localhost:19092,localhost:19093,localhost:19094 --topic test6662 hello kafka!
3 hello littleMonster!
4 hello world!
9.接收消息:
1 [root@centos7 bin]# ./kafka-console-consumer.sh --zookeeper 192.168.1.18:3001,192.168.1.18:3002,192.168.1.18:3003 --topic test666 --from-beginning2 hello kafka!
3 hello littleMonster!
4 hello world!
消息接收成功。
10.找到為0的leader的進程,并殺死
1 [root@centos7 /]# ps -ef | grep ka
1 [root@centos7 /]# kill -9 25285
11.再次查看topic狀態:
1 [root@centos7 bin]# ./kafka-topics.sh --describe --zookeeper 192.168.1.18:3001,192.168.1.18:3002,192.168.1.18:3003 --topic test6662 Topic:test666 PartitionCount:1 ReplicationFactor:3Configs:3 Topic: test666 Partition: 0 Leader: 2 Replicas: 0,2,1 Isr: 2,1
由此可見,在Isr(正在服務中的節點)項,0已消失,新選舉出的leader是2。
12.再次發送消息
接收消息
消息正常接收,該測試通過。
CentOS 7.2部署Elasticsearch+Kibana+Zookeeper+Kafka? http://www.linuxidc.com/Linux/2016-11/137636.htm
Kafka 的詳細介紹:請點這里
Kafka 的下載地址:請點這里
總結
以上是生活随笔為你收集整理的centos7搭建Linux集群,CentOS 7下Kafka集群安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux ping不允许的操作,lin
- 下一篇: linux 输入是否为数字,【shell