Pulsar集群搭建部署
一、集群組成說明
1. 搭建 Pulsar 集群至少需要 3 個(gè)組件:ZooKeeper 集群、BookKeeper 集群和 broker 集群(Broker 是 Pulsar 的自身實(shí)例)。這三個(gè)集群組件如下:
ZooKeeper 集群(3 個(gè) ZooKeeper 節(jié)點(diǎn)組成)
bookie 集群(也稱為 BookKeeper 集群,3 個(gè) BookKeeper 節(jié)點(diǎn)組成)
broker 集群(3 個(gè) Pulsar 節(jié)點(diǎn)組成)
2. Pulsar 的安裝包已包含了搭建集群所需的各個(gè)組件庫。無需單獨(dú)下載 ZooKeeper 安裝包和 BookKeeper 安裝包。
二、安裝JDK
在 3 臺(tái) Linux 裸機(jī)服務(wù)器上安裝 JDK(要求版本不低于 JDK 8)安裝略過
下載最新版本pulsar,https://pulsar.apache.org/download/?上傳至3臺(tái)服務(wù)器
解壓安裝包到指定目錄
$tar -zxvf apache-pulsar-2.3.2-bin.tar.gz -C /data
三、配置部署 ZooKeeper 集群
/data/apache-pulsar-2.3.2$?cd?/data/apache-pulsar-2.3.2/conf
/data/apache-pulsar-2.3.2$?vim zookeeper.conf
# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial? # synchronization phase can take initLimit=10 # The number of ticks that can pass between? # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just? # example sakes. dataDir=/data/zookeeper/zookeeper dataLogDir=/data/zookeeper/logs # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients maxClientCnxns=300 # # Be sure to read the maintenance section of the? # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir autopurge.snapRetainCount=180 # Purge task interval in hours # Set to "0" to disable auto purge feature autopurge.purgeInterval=180 server.1=HOSTNAME:2888:3888 server.2=HOSTNAME:2888:3888 server.3=HOSTNAME:2888:3888 |
# 新建文件目錄
/data/apache-pulsar-2.3.2$?mkdir -PV /data/zookeeper/zookeeper
/data/apache-pulsar-2.3.2$?mkdir -PV?/data/zookeeper/logs
# 新建文件 myid,分別在指定的sever上寫入配置文件中指定的編號(hào)
server.1服務(wù)器上
echo 1 > data/zookeeper/zookeeper/myid
server.2服務(wù)器上
/data/apache-pulsar-2.3.2$?echo 2 > data/zookeeper/zookeeper/myid
server.3服務(wù)器上
/data/apache-pulsar-2.3.2$?echo 3 > data/zookeeper/zookeeper/myid
# 執(zhí)行后臺(tái)運(yùn)行命令
/data/apache-pulsar-2.3.2$?bin/pulsar-daemon start zookeeper
# 執(zhí)行 zookeeper 客戶端連接命令
/data/apache-pulsar-2.3.2$?bin/pulsar zookeeper-shell
#注意Enter 鍵進(jìn)入命令行界面后,可完全使用 ZooKeeper 的各種命令,如ls、get等命令。使用quit命令退出
#在任一個(gè) ZooKeeper 節(jié)點(diǎn),初始化集群元數(shù)據(jù)。
/data/apache-pulsar-2.3.2$bin/pulsar initialize-cluster-metadata \
? --cluster pulsar-cluster-zk \
? --zookeeper HOSTNAMEIP:2181 \
? --configuration-store HOSTNAMEIP:2181 \
? --web-service-url http://HOSTNAMEIP:8080 \
? --web-service-url-tls https://HOSTNAMEIP:8443 \
? --broker-service-url pulsar://HOSTNAMEIP:6650 \
? --broker-service-url-tls pulsar+ssl://HOSTNAMEIP:6651
#查看集群元數(shù)據(jù)是否初始化成功,看到如下圖所內(nèi)容,表示初始化成功
$ bin/pulsar zookeeper-shell
四、配置部署 BookKeeper 集群
編輯 bookkeeper.conf 文件
/data/apache-pulsar-2.3.2$?vim conf/bookkeeper.conf?
advertisedAddress=HOSTNAMEIP zkServers=ZKSERVER1:2181,ZKSERVER2:2181,ZKSERVER3:2181 journalDirectory=/data/bookkeeper/journal ledgerDirectories=/data/bookkeeper/ledgers |
#創(chuàng)建bookie所需要目錄
/data/apache-pulsar-2.3.2$?mkdir -pv?/data/bookkeeper/
#執(zhí)行初始化元數(shù)據(jù)命令;若出現(xiàn)提示,輸入 Y,繼續(xù)(只需在一個(gè)bookie節(jié)點(diǎn)執(zhí)行一次)
/data/apache-pulsar-2.3.2$?bin/bookkeeper shell metaformat
#以后臺(tái)進(jìn)程啟動(dòng)bookie
/data/apache-pulsar-2.3.2$?bin/pulsar-daemon start bookie
#按照以上步驟,啟動(dòng)另外兩個(gè) bookie 節(jié)點(diǎn)。
如果出現(xiàn)報(bào)錯(cuò)
就是/data/bookkeeper/journal/current/VERSION? ?/data/bookkeeper/ledgers/current/VERSION?這兩個(gè)文件與zk上的文件不一致造成的,將journal?和ledgers文件刪除,在把zk的注冊(cè)信息刪除,重新注冊(cè)一遍就好
驗(yàn)證是否啟動(dòng)成功
/data/apache-pulsar-2.3.2$?bin/bookkeeper shell bookiesanity
/data/apache-pulsar-2.3.2$??vim logs/pulsar-bookie-HOSTNAME.out.2?
如果驗(yàn)證出現(xiàn)以上錯(cuò)誤。
#解決方案:查看8000端口是否被占用
$egrep -v '^#|^$' conf/bookkeeper.conf
將prometheusStatsHttpPort=8000?端口更改掉
將bookie關(guān)閉
/data/apache-pulsar-2.3.2$?$bin/pulsar-daemon stop bookie
啟動(dòng)bookie
/data/apache-pulsar-2.3.2$?$bin/pulsar-daemon start bookie
驗(yàn)證是否啟動(dòng)成功,出現(xiàn)如下顯示,表示啟動(dòng)成功Bookie
/data/apache-pulsar-2.3.2$?bin/bookkeeper shell bookiesanity
五、部署配置 Broker 集群
/data/apache-pulsar-2.3.2$ vim conf/broker.conf?
zookeeperServers=ZKSERVER1:2181,ZKSERVER2:2181,ZKSERVER3:2181 configurationStoreServers=ZKSERVER1:2181,ZKSERVER2:2181,ZKSERVER3:2181 advertisedAddress=HOSTNAME clusterName=pulsar-cluster-zk |
#以后臺(tái)進(jìn)程啟動(dòng) broker
/data/apache-pulsar-2.3.2$?bin/pulsar-daemon start broker
查看集群 brokers 節(jié)點(diǎn)情況
/data/apache-pulsar-2.3.2$?bin/pulsar-admin brokers list pulsar-cluster
六、docker 安裝 apachepulsar/pulsar-dashboard
#docker安裝略過
#docker run --name pulsar-dashboard -dit -p 80:80 -e SERVICE_URL=http://PULSARSEVERIP:8080? apachepulsar/pulsar-dashboard
通過瀏覽器訪問docker?宿主機(jī)IP
轉(zhuǎn)載于:https://blog.51cto.com/536410/2408686
總結(jié)
以上是生活随笔為你收集整理的Pulsar集群搭建部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实现简约不简单的vuex
- 下一篇: golang中的http conn实现分