kafka安裝
kafka叢集部署以及java客戶端測試
本文主要講述本人的叢集部署kafka過程以及遇到的問題:
其中:kafka版本為:kafka_2.10,zookeeper版本為:zookeeper-3.4.8,jdk-8u101-linux-x64
一 kafka以及zookeeper安裝以及環境配置
二 zookeeper叢集配置以及測試
三 kafka叢集配置以及測試
四 java客戶端生產與消費測試
一 kafka以及zookeeper安裝以及環境配置*
系統環境:CentOS 6.5
伺服器三臺: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進行管理自身的broker,offset,producer,comsumer等,所以在安裝部署kafka之前必須先部署zookeeeper,雖然kafka也自帶了zookeeper,不過本人這裡還是自己獨立使用的zookeeper
首先進入上面已經解壓好的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位三個伺服器的地址以及埠,首先得確保這三臺伺服器之間是互通的,同時4001以及4002埠也都是開放的。另外4001表示這三臺伺服器之間通訊使用的埠,4002則是伺服器之間選舉使用的埠,當有一臺伺服器down以後就會時候此埠進行選取新的leader。
3.最重要的一步:
分別在三臺伺服器的dataDir路徑下建立一個myid的檔案(本例的dataDir地址為:/usr/local/zookeeper/data),檔案的內容為zookeeper階段的編號,例如:
192.168.1.1這臺伺服器上的檔案內容為0,其餘的分別是1,2。
cmd:cd /usr/local/zookeeper/data
cmd:echo 0 > myid
cmd:cat myid
若顯示0即成功,同時另外兩臺伺服器上配置也如此,只是修改myid裡的內容分別為1與2即可。
4.啟動叢集伺服器:
啟動三臺伺服器上的zookeeper服務:
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的狀態,會有兩個follower以及一個leader,此時的server1位leader,為了測試選舉,將server1的服務停止:
cmd:bin/zkService.sh stop
再次檢視伺服器狀態,就可以看到新的leader已經更換。
此時zookeeper叢集已經搭建OK
三 kafka叢集配置以及測試
1.由於是三個伺服器,因此這裡會存在三個broker,分別是0,1,2,對應的伺服器為:192.168.1.1,192.168.1.2,192.168.1.3,因此在建立分割槽的時候會實用三個分割槽,如下是安裝配置步驟:
1.首先要修改kakfa的配置檔案
cmd:cd /use/local/kafka/config
cmd:vi server.properties
#此Broker的ID,叢集中每個Broker的ID不可相同
broker.id=0(此處三個伺服器分別填寫0,1,2 請不要寫重了)
#監聽器,埠號與port一致即可
listeners=PLAINTEXT://:9092
#Broker的Hostname,填主機IP即可
advertised.host.name=192.168.1.1(如果要kafka遠端訪問,此處必填,否則只能區域網訪問kafka)
#進行IO的執行緒數,應大於主機磁碟數
num.io.threads=8
#訊息檔案儲存的路徑
log.dirs=/usr/local/kafka/kafka-logs
#訊息檔案清理週期,即清理x小時前的訊息記錄
log.retention.hours=168
#每個Topic預設的分割槽數,一般在建立Topic時都會指定分割槽數,所以這個配成1就行了
num.partitions=1
#Zookeeper連線串,此處填寫上一節中安裝的三個zk節點的ip和埠即可
zookeeper.connect=192.168.1.1:2181,192.168.1.2:2181,192.168.1.3:2181
2.接下來分別啟動三個伺服器上的kafka:
cmd:bin/kafka-server-start.sh config/server.properties &
沒有報錯即啟動成功
3.然後建立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的狀態:
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
簡單測試:
生產者:
bin/kafka-console-producer.sh –broker-list 192.168.1.1:9092,192.168.1.2:9092,192.168.1.3:9092 –topic test
消費者:
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
此時在生產者控制檯輸入:hello world
消費者正常顯示:hello world
如此叢集就搭建完畢,剩下的就是利用java客戶端進行遠端測試。
四 java客戶端生產與消費測試
本人直接使用的lib包的方式進行測試的,並非maven。如下是本人的lib包
Java maven工程事例
https://pan.baidu.com/s/1dFs4EIH 提取密碼:5hgy
相關文章
- Linux 安裝kafkaLinuxKafka
- Kafka安裝-linuxKafkaLinux
- Linux安裝KafkaLinuxKafka
- 安裝Kafka叢集Kafka
- 4-kafka安裝Kafka
- kafka 安裝到使用Kafka
- 安裝測試kafkaKafka
- kafka安裝及使用Kafka
- kafka和zookeeper安裝Kafka
- Kafka2.8安裝Kafka
- linux環境安裝——kafka安裝複習LinuxKafka
- Kafka SSL安裝與配置Kafka
- kafka的安裝與使用Kafka
- kafka的安裝及使用Kafka
- kafka 安裝部署,使用教程Kafka
- 快速安裝 kafka 叢集Kafka
- 使用 Bitnami Helm 安裝 KafkaKafka
- 安裝nginx-kafka外掛NginxKafka
- kafka入門安裝和使用Kafka
- PHP 使用 Kafka 安裝拾遺PHPKafka
- Kafka 的安裝及啟動Kafka
- 安裝Zookeeper和Kafka叢集Kafka
- Kafka應用實戰——Kafka安裝及簡單使用Kafka
- Kafka 入門(一)--安裝配置和 kafka-python 呼叫KafkaPython
- kafka的認識、安裝與配置Kafka
- centos7安裝單機kafkaCentOSKafka
- 如何在 Rocky Linux 上安裝 Apache Kafka?LinuxApacheKafka
- Linux系統安裝和使用Kafka教程。LinuxKafka
- kafka的內部實現、安裝和使用Kafka
- CentOS6.5安裝kafka-2.10-0.8.2(單機)CentOSKafka
- Centos7編譯安裝kafka-manager教程CentOS編譯Kafka
- Linux系統中KafKa安裝和使用方法 java客戶端連線kafkaLinuxKafkaJava客戶端
- Kafka安裝搭建、常見報錯、常用命令Kafka
- Kafka 1.0.0的安裝使用以及一些命令Kafka
- kafka環境安裝及簡單使用(單機版)Kafka
- Apache Kafka安裝和使用(入門教程輕鬆學)ApacheKafka
- mac環境canal+mysql+kafka的安裝及使用MacMySqlKafka
- canal+mysql+kafka實時資料同步安裝、配置MySqlKafka
- Kafka超詳細學習筆記【概念理解,安裝配置】Kafka筆記