Kafka叢集安裝(CentOS 7環境下)

來源:互聯網
上載者:User

標籤:隨機   安裝   通過   查詢   接收   tin   root   idt   etc   

一、環境作業系統和軟體版本介紹

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 [[email protected] config]# vi server.properties

4.修改如下:

1 broker.id=02 port=190923 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=12 port=190933 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=22 port=190943 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 [[email protected] bin]# jps2 25778 Kafka3 26132 Jps4 25285 Kafka5 25014 QuorumPeerMain6 25064 QuorumPeerMain7 25531 Kafka8 25116 QuorumPeerMain

4.使用用戶端進入zk

1 [[email protected] bin]# ./zkCli.sh -server 192.168.1.18:30012 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 [[email protected] 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 [[email protected] 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:3    Configs: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 [[email protected] 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 [[email protected] 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 [[email protected] /]# ps -ef | grep ka

1 [[email protected] /]# kill -9 25285

11.再次查看topic狀態:

1 [[email protected] 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:3    Configs:3     Topic: test666    Partition: 0    Leader: 2    Replicas: 0,2,1    Isr: 2,1

由此可見,在Isr(正在服務中的節點)項,0已消失,新選舉出的leader是2。

12.再次發送訊息

接收訊息

訊息正常接收,該測試通過。

 

Kafka叢集安裝(CentOS 7環境下)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.