ZooKeeper是什么? ZooKeeper是一個分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個開源的實現(xiàn),它是集群的管理者,監(jiān)視著集群中各個節(jié)點的狀態(tài)根據(jù)節(jié)點提交的反饋進(jìn)行下一步合理操作。最終,將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。
Kafka是最初由Linkedin公司開發(fā),是一個分布式、支持分區(qū)的(partition)、多副本的(replica),基于zookeeper協(xié)調(diào)的分布式消息系統(tǒng),它的最大的特性就是可以實時的處理大量數(shù)據(jù)以滿足各種需求場景:比如基于hadoop的批處理系統(tǒng)、低延遲的實時系統(tǒng)、storm/Spark流式處理引擎,web/nginx日志、訪問日志,消息服務(wù)等等,用scala語言編寫,Linkedin于2010年貢獻(xiàn)給了Apache基金會并成為頂級開源 項目。
一、基礎(chǔ)環(huán)境準(zhǔn)備:服務(wù)器是 “192.168.1.18 ”;
二、布置服務(wù)器JDK環(huán)境: 查看 java -version 或者 rpm -qa |grep jdk
沒有的話yum查看:yum -y list java*
java -version #查看jadk
yum -y list java* #查看yum源中的java
yum -y install java-1.8.0* #安裝1.8jdk
三、定義目錄結(jié)構(gòu):mkdir -p /opt/zookeeper
Mkdir -p /opt/kafka
四、下載包:
cd /opt/zookeeper
Wget https://mirrors.aliyun.com/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
Cd /opt/kafka
Wget https://mirrors.aliyun.com/apache/kafka/1.1.0/kafka_2.12-1.1.0.tgz
## 沒wget需要 yum -y install wget 安裝
五、配置啟動zookeeper(雖然一般kafka自帶zookeeper但是看到博客上都推薦使用自己單獨的zookeeper):
Cd /opt/zookeeper/
tar -zxvf zookeeper-3.4.12.tar.gz
Cd /opt/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
Vim zoo.cfg修改配置部分分別為:
這里也可以這樣寫Server.1=zk1:2888:3888
dataDir 定義:zookeeper保存數(shù)據(jù)的目錄;
dataLogDir= #Zookeeper將寫數(shù)據(jù)的日志文件保存在這個目錄里;
server.1 這個1是服務(wù)器的標(biāo)識也可以是其他的數(shù)字, 表示這個是第幾號服務(wù)器,用來標(biāo)識服務(wù)器,這個標(biāo)識后續(xù)會用到。
第一個端口是master和slave之間的通信端口,默認(rèn)是2888,第二個端口是leader選舉的端口。默認(rèn)3888。 修改完成后,保存即可。
創(chuàng)建節(jié)點的myid(節(jié)點非0開始可以從1開始做節(jié)點但是要有規(guī)則)
Vim /opt/zookeeper/zkdata/myid下寫入1(2節(jié)點到時候?qū)懭?)
啟動服務(wù):cd /opt/zookeeper/zookeeper-3.4.12/bin
./zkServer.sh start ###啟動
./zkServer.sh status ###啟動后一定要查看
六、Kafka搭建:
cd /opt/kafka
tar zxvf kafka_2.12-1.1.0.tgz
cd /opt/kafka/kafka_2.12-1.1.0/config #進(jìn)入kafka配置目錄
cp server.properties server.properties.bak #備份kafka默認(rèn)配置文件
修改配置文件: vim server.properties
kafka啟動需要選擇配置文件
broker.id=1 #當(dāng)前機(jī)器在集群中的唯一標(biāo)識
listeners=PLAINTEXT://10.15.21.62:9092 #監(jiān)聽端口
advertised.listeners=PLAINTEXT://10.15.21.62:9092 #提供給生產(chǎn)者,消費者的端口號??梢圆辉O(shè)置則使用listeners的值
logs日志路徑?jīng)]有的話需要創(chuàng)建
啟動可以絕對路徑:
啟動:./kafka-server-start.sh -daemon ../config/server.properties
七、測試kafka:
1、先創(chuàng)建一個測試主題:./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic dgp
2、查看主題: ./kafka-topics.sh --list --zookeeper localhost:2181
3、發(fā)送一些消息:
./kafka-console-producer.sh --broker-list localhost:9092 --topic dgp
輸入一些信息
4、啟動命令行消費者,將消息轉(zhuǎn)儲到標(biāo)準(zhǔn)輸出:
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic d --from-beginning
kafka偽分布式搭建參考: https://blog.csdn.net/weixin_42207486/article/details/80635246