kafka安裝

kafka集群部署以及java客戶端測試

本文主要講述本人的集群部署kafka過程以及遇到的問題:

其中:kafka版本為:kafka_2.10,zookeeper版本為:zookeeper-3.4.8,jdk-8u101-linux-x64

一 kafka以及zookeeper安裝以及環(huán)境配置

二 zookeeper集群配置以及測試

三 kafka集群配置以及測試

四 java客戶端生產(chǎn)與消費(fèi)測試


一? kafka以及zookeeper安裝以及環(huán)境配置*

系統(tǒng)環(huán)境:CentOS 6.5

服務(wù)器三臺:192.168.1.1,192.168.1.2,192.168.1.3

jdk下載地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

zookeeper下載地址:http://www.apache.org/dyn/closer.cgi/zookeeper/

kafka下載地址:http://kafka.apache.org/downloads

1.jdk安裝

cmd:rpm -ivh jdk-8u101-linux-x64.rpm

安裝完畢:java -version顯示如下信息即安裝成功:

java version "1.8.0_101"

Java(TM) SE Runtime Environment (build 1.8.0_101-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

2.zookeeper安裝

將下載的zookeeper-3.4.8.tar.gz解壓,同時將zookeeper放入usr/local下面

cmd:unzip zookeeper-3.4.8.tar.gz

cmd:mv zookeeper-3.4.8? zookeeper

cmd:mv zookeeper /usr/local

3.kafka安裝

將下載的kafka_2.10-0.10.0.0.tgz解壓安裝,同時將zookeeper放入usr/local下面

cmd:unzip kafka_2.10-0.10.0.0.tgz

cmd:mv kafka_2.10-0.10.0.0 kafka

cmd:mv kafka /usr/local

二 zookeeper集群配置以及測試

1.由于kafka必須依賴zookeeper進(jìn)行管理自身的broker,offset,producer,comsumer等,所以在安裝部署kafka之前必須先部署zookeeeper,雖然kafka也自帶了zookeeper,不過本人這里還是自己獨(dú)立使用的zookeeper

首先進(jìn)入上面已經(jīng)解壓好的zookeeper目錄:

cmd:cd /usr/local/zookeeper

修改配置文件:cd conf

cmd:cp zoo_sample.cfg zoo.cfg

cmd:vi zoo.cfg

# The number of milliseconds of each

ticktickTime=2000

# synchronization phase can take

# The number of ticks that can pass between

syncLimit=5

# the directory where the snapshot is stored.

dataDir=/usr/local/zookeeper/data

dataLogDir=/usr/local/zookeeper/logs

# the port at which the clients will connect

clientPort=2181

server.0=192.168.1.1:4001:4002

server.1=192.168.1.2:4001:4002

server.2=192.168.1.3:4001:4002

2.以上就是zookeeper的配置文件,server.0,1,2位三個服務(wù)器的地址以及端口,首先得確保這三臺服務(wù)器之間是互通的,同時4001以及4002端口也都是開放的。另外4001表示這三臺服務(wù)器之間通信使用的端口,4002則是服務(wù)器之間選舉使用的端口,當(dāng)有一臺服務(wù)器down以后就會時候此端口進(jìn)行選取新的leader。

3.最重要的一步:

分別在三臺服務(wù)器的dataDir路徑下創(chuàng)建一個myid的文件(本例的dataDir地址為:/usr/local/zookeeper/data),文件的內(nèi)容為zookeeper階段的編號,例如:

192.168.1.1這臺服務(wù)器上的文件內(nèi)容為0,其余的分別是1,2。

cmd:cd /usr/local/zookeeper/data

cmd:echo 0 > myid

cmd:cat myid

若顯示0即成功,同時另外兩臺服務(wù)器上配置也如此,只是修改myid里的內(nèi)容分別為1與2即可。

4.啟動集群服務(wù)器:

啟動三臺服務(wù)器上的zookeeper服務(wù):

cmd:bin/zkService.sh start

全都啟動以后查看狀況:

cmd:bin/zkService.sh status

顯示如下:

ZooKeeper JMX enabled by default

Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg

Mode: follower

其中Mode表示node的狀態(tài),會有兩個follower以及一個leader,此時的server1位leader,為了測試選舉,將server1的服務(wù)停止:

cmd:bin/zkService.sh stop

再次查看服務(wù)器狀態(tài),就可以看到新的leader已經(jīng)更換。

此時zookeeper集群已經(jīng)搭建OK

三 kafka集群配置以及測試

1.由于是三個服務(wù)器,因此這里會存在三個broker,分別是0,1,2,對應(yīng)的服務(wù)器為:192.168.1.1,192.168.1.2,192.168.1.3,因此在創(chuàng)建分區(qū)的時候會實(shí)用三個分區(qū),如下是安裝配置步驟:

1.首先要修改kakfa的配置文件

cmd:cd /use/local/kafka/config

cmd:vi server.properties

#此Broker的ID,集群中每個Broker的ID不可相同

broker.id=0(此處三個服務(wù)器分別填寫0,1,2 請不要寫重了)

#監(jiān)聽器,端口號與port一致即可

listeners=PLAINTEXT://:9092

#Broker的Hostname,填主機(jī)IP即可

advertised.host.name=192.168.1.1(如果要kafka遠(yuǎn)程訪問,此處必填,否則只能局域網(wǎng)訪問kafka)

#進(jìn)行IO的線程數(shù),應(yīng)大于主機(jī)磁盤數(shù)

num.io.threads=8

#消息文件存儲的路徑

log.dirs=/usr/local/kafka/kafka-logs

#消息文件清理周期,即清理x小時前的消息記錄

log.retention.hours=168

#每個Topic默認(rèn)的分區(qū)數(shù),一般在創(chuàng)建Topic時都會指定分區(qū)數(shù),所以這個配成1就行了

num.partitions=1

#Zookeeper連接串,此處填寫上一節(jié)中安裝的三個zk節(jié)點(diǎn)的ip和端口即可

zookeeper.connect=192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181

2.接下來分別啟動三個服務(wù)器上的kafka:

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

沒有報錯即啟動成功

3.然后創(chuàng)建topic

bin/kafka-topics.sh –create –zookeeper 192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181 –replication-factor 3 –partitions 3 –topic test

查看Topic的狀態(tài):

bin/kafka-topics.sh –describe –zookeeper 192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181 –topic test

輸出:

Topic:test? PartitionCount:3? ? ? ReplicationFactor:3? ? Configs:

Topic: test Partition: 0? ? Leader: 1? ? ? Replicas: 1,2,0 Isr: 2,0,1

Topic: test Partition: 1? ? Leader: 2? ? ? Replicas: 2,0,1 Isr: 2,0,1

Topic: test Partition: 2? ? Leader: 3? ? ? Replicas: 0,1,2 Isr: 2,0,1

簡單測試:

生產(chǎn)者:

bin/kafka-console-producer.sh –broker-list 192.168.1.1:9092,192.168.1.2:9092,192.168.1.3:9092 –topic test

消費(fèi)者:

bin/kafka-console-consumer.sh –zookeeper 192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181 –topic test –from-beginning

此時在生產(chǎn)者控制臺輸入:hello world

消費(fèi)者正常顯示:hello world

如此集群就搭建完畢,剩下的就是利用java客戶端進(jìn)行遠(yuǎn)程測試。

四 java客戶端生產(chǎn)與消費(fèi)測試

本人直接使用的lib包的方式進(jìn)行測試的,并非maven。如下是本人的lib包

Java maven工程事例

https://pan.baidu.com/s/1dFs4EIH? ? ? 提取密碼:5hgy

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ** 今天看了一下kafka官網(wǎng),嘗試著在自己電腦上安裝和配置,然后學(xué)一下官方document。** Introd...
    RainChang閱讀 5,134評論 1 30
  • 環(huán)境: CentOS release 6.7 (Final)kafka_2.11-0.11.0.1.tgzzook...
    三更燈火閱讀 728評論 0 0
  • 本人陸陸續(xù)續(xù)接觸了ELK的1.4,2.0,2.4,5.0,5.2版本,可以說前面使用當(dāng)中一直沒有太多感觸,最近使用...
    三杯水Plus閱讀 4,255評論 0 12
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 一個看起來很舒服的單位,往往呆起來特別不舒服。最大的可能就是你想做事,一群人諷刺你,你想學(xué)習(xí),充實(shí)自己,一群人擋著...
    上官伊痕_959d閱讀 754評論 0 0

友情鏈接更多精彩內(nèi)容