前置條件,需要JDK環境
192.168.1.1 192.168.1.2 192.168.1.3
$ cat >>/etc/hosts<<EOF 192.168.1.1 pulsar01 zk01 192.168.1.2 pulsar02 zk02 192.168.1.3 pulsar03 zk03
下載地址 https://www.oracle.com/java/technologies/downloads/
版本:jdk-8u351-linux-x64.tar.gz$ tar xvfz jdk-8u351-linux-x64.tar.gz $ mv jdk1.8.0_351 /opt/module/jdk1.8.0_351
編輯 ~/.bash_profile 加入環境設定
JAVA_HOME=/opt/module/jdk1.8.0_351 CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin export PATH CLASSPATH JAVA_HOME
$ source ~/.bash_profile 生效命令
$ wget 'https://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&filename=pulsar/pulsar-2.10.2/apache-pulsar-2.10.2-bin.tar.gz' -O apache-pulsar-2.10.2-bin.tar.gz $ tar xvfz apache-pulsar-2.10.2-bin.tar.gz $ mv apache-pulsar-2.10.2-bin /opt/module/pulsar-2.10.2
如果上方地址下載不成功,需要手動下載後匯入
https://pulsar.apache.org/download/
zookeeper為pulsar管理各種與協調相關和設定相關的基本任務,而且pulsar安裝包裡已經整合了zookeeper元件
加入設定到zookeeper組態檔
官方檔案裡面支援 etcd還有別的元件來替代zookeeper,此檔案先用zookeeper設定cat >>/opt/module/pulsar-2.10.2/conf/zookeeper.conf<<EOF server.1=zk01:2185:2186 server.2=zk02:2185:2186 server.3=zk03:2185:2186 EOF
在每個主機上指定節點ID
zk01mkdir -p /opt/module/pulsar-2.10.2/data/zookeeper echo "1" > /opt/module/pulsar-2.10.2/data/zookeeper/myid
zk02
mkdir -p /opt/module/pulsar-2.10.2/data/zookeeper echo "2" > /opt/module/pulsar-2.10.2/data/zookeeper/myid
zk03
mkdir -p /opt/module/pulsar-2.10.2/data/zookeeper echo "3" > /opt/module/pulsar-2.10.2/data/zookeeper/myid
啟動zookeeper
/opt/module/pulsar-2.10.2/bin/pulsar-daemon start zookeeper
使用命令檢視埠是否正常
net -anp|grep 2181
編輯組態檔,找到以下設定項
# Default port for Prometheus metrics exporter advertisedAddress=pulsar01 #56行 這裡需要填入本地ip,每臺機器都不一樣,另外兩臺機器按實際填入 prometheusStatsHttpPort=8100 #575行 修改成8100,因為8000已經被zookeeper佔用 metadataServiceUri=metadata-store:zk:zk01:2181,zk02:2181,zk03:2181 #638行 加入zk地址
初始化後設資料
/opt/module/pulsar-2.10.2/bin/bookkeeper shell metaformat
啟動 bookkeeper
/opt/module/pulsar-2.10.2/bin/pulsar-daemon start bookie
#出現Y/N: 輸入Y即可
測試 bookkeeper
/opt/module/pulsar-2.10.2/bin/bookkeeper shell bookiesanity
出現末尾出現 Bookie sanity test succeeded 算成功
$ bin/pulsar initialize-cluster-metadata \ --cluster pulsar-cluster-qj \ --metadata-store zk:zk01:2181,zk02:2181,zk03:2181 \ --configuration-metadata-store zk:zk01:2181,zk02:2181,zk03:2181 \ --web-service-url http://pulsar01:8080,pulsar02:8080,pulsar03:8080 \ --web-service-url-tls https://pulsar01:8443,pulsar02:8443,pulsar03:8443 \ --broker-service-url pulsar://pulsar01:6650,pulsar02:6650,pulsar03:6650 \ --broker-service-url-tls pulsar+ssl://pulsar01:6651,pulsar02:6651,pulsar03:6651
--cluster叢集名字
--metadata-store 後設資料儲存連線字串
--configuration-metadata-store 整個範例的設定儲存連線字串
--web* 叢集的web服務url
--broker* 叢集 允許與叢集中的代理進行互動的代理服務URL出現下面這個算成功
clusterName=pulsar-cluster-qj #115行,和初始化的時候填寫的一樣 metadataStoreUrl=zk:zk01:2181,zk02:2181,zk03:2181 #27行填寫zk叢集url
啟動broker
/opt/module/pulsar-2.10.2/bin/pulsar-daemon start broker
檢視狀態
/opt/module/pulsar-2.10.2/bin/pulsar-admin brokers list pulsar-cluster-qj
出現叢集機器資訊表示成功
設定pulsar的環境變數,命令操作就方便許多
編輯環境變數檔案 vim ~/.bash_profile
新增PULSAR_HOME=/opt/module/pulsar-2.10.2/bin
修改PATH,在末尾加入:$PULSAR_HOME
生效組態檔source ~/.bash_profile
官方使用etcd或者RocksDB替換Zookeeper做為pulsar metadata stroe 檔案
https://pulsar.apache.org/docs/next/administration-metadata-store/