kafka安裝

1.下載安裝

  wget http://mirrors.cnnic.cn/apache/kafka/0.8.1.1/kafka_2.9.2-0.8.1.1.tgz

  解壓tar -xzvf kafka_2.9.2-0.8.1.1.tgz  之後,查看路徑下的文件

  [root@master intalldir]# cd kafka_2.9.2-0.8.1.1/

  [root@master kafka_2.9.2-0.8.1.1]# ll

  total 28

  drwxr-xr-x. 3 root root  4096 Apr 22  2014 bin

  drwxr-xr-x. 2 root root  4096 Apr 22  2014 config

  drwxr-xr-x. 2 root root  4096 Apr 22  2014 libs

  -rw-rw-r--. 1 root root 11358 Apr 22  2014 LICENSE

  -rw-rw-r--. 1 root root   162 Apr 22  2014 NOTICE

  配置環境變量

    vim   /etc/profile

   然後 運行 source /etc/profile使之生效

2.配置kafka

  配置以及啓動測試

  (1)首先可以啓動kafka自帶的ZooKeeper 

  bin/zookeeper-server-start.sh config/zookeeper.properties &(注意要後臺啓動)

    但是最好使用自己安裝的ZooKeeper修改配置文件config/server.properties,修改如下內容:

   查看server.properties

 # Zookeeper connection string (see zookeeper docs for details).

  # This is a comma separated host:port pairs, each corresponding to a zk

  # server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".

  # You can also append an optional chroot string to the urls to specify the

  # root directory for all kafka znodes.

   zookeeper.connect=localhost:2181   

   利用逗號zookeeper集羣

  配置如下

   zookeeper.connect=master:2181,slave1:2181,slave2:2181

(2)kafka分別複製到slave1slave2

 並修改配置文件config/server.properties內容如下所示:

broker.id=1  # slave1修改broker.id=2  # slave2修改

因爲Kafka集羣需要保證各個Brokerid在整個集羣中必須唯一,需要調整這個配置項的值(如果在單機上,可以通過建立多個Broker進程來模擬分佈式的Kafka集羣,也需要Brokerid唯一,還需要修改一些配置目錄的信息)。 

(3)在集羣中的master、slave1、slave2這三個節點上分別啓動Kafka,分別執行如下命令:啓動前保證zooKeeper已經啓動

bin/kafka-server-start.sh config/server.properties &

 

(4)可以通過查看日誌,或者檢查進程狀態,保證Kafka集羣啓動成功。 我們創建一個名稱爲my-replicated-topic5Topic5個分區,並且複製因子爲3,執行如下命令:

bin/kafka-topics.sh --create --zookeeper h1:2181,h2:2181,h3:2181 --replication-factor 3 --partitions 5 --topic my-replicated-topic5

查看創建的Topic,執行如下命令:

bin/kafka-topics.sh --describe --zookeeper h1:2181,h2:2181,h3:2181 --topic my-replicated-topic5

結果信息如下所示:

 

上面LeaderReplicasIsr的含義如下:

Partition: 分區Leader   : 負責讀寫指定分區的節點Replicas : 複製該分區log的節點列表Isr      : "in-sync" replicas,當前活躍的副本列表(是一個子集),並且可能成爲Leader

(5)測試生產和消費

我們可以通過Kafka自帶的bin/kafka-console-producer.shbin/kafka-console-consumer.sh腳本,來驗證演示如果發佈消息、消費消息。 在一個終端,啓動Producer,並向我們上面創建的名稱爲my-replicated-topic5Topic中生產消息,執行如下腳本:

bin/kafka-console-producer.sh --broker-list h1:9092,h2:9092,h3:9092 --topic my-replicated-topic5

在另一個終端,啓動Consumer,並訂閱我們上面創建的名稱爲my-replicated-topic5Topic中生產的消息,執行如下腳本:

bin/kafka-console-consumer.sh --zookeeper h1:2181,h2:2181,h3:2181 --from-beginning --topic my-replicated-topic5

可以在Producer終端上輸入字符串消息行,然後回車,就可以在Consumer終端上看到消費者消費的消息內容。 也可以參考KafkaProducerConsumerJava API通過API編碼的方式來實現消息生產和消費的處理邏輯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章