Pulsar集群模式安装
集群模式安装有如下几种部署方式:
- 三台节点部署zookeeper,三台节点部署bookie,三台节点部署broker,共需要9台节点。
- 三台节点部署zookeeper,三台节点部署bookie和broker,共需要6台节点。
- 三台节点部署zookeeper,bookier和broker,共需3台节点。
本文的部署使用第三种方式,即三台节点分别部署zookeeper,bookie和broker。如果机器足够,建议使用第2种部署方式。
Pulsar集群模式部署依次为
- 安装zookeeper。
- 初始化集群信息。
- 安装bookie。
- 安装broker。
前期准备
在三台节点上分别执行如下操作。
-
安装Java1.8以上的JDK。
-
官网下载pulsar的安装包。
tar -xzvf apache-pulsar-2.7.0-bin.tar.gz -C /home/pulsar
Zookeeper安装
-
使用自建的zookeeper,可参考zookeeper集群安装,安装之后再三台节点上分别执行启动zookeeper的命令。
-
使用Pulsar自带的zookeeper。安装步骤如下:(三个节点上都需要安装)
-
cd /home/pulsar vim ./conf/zookeeper.conf # ============ 编辑开始 =============== # 首先添加如下内容至文件末尾 server.2 = node2:9010:9011 server.3 = node3:9010:9011 server.4 = node4:9010:9011 # 更改文件dataDir的位置。 dataDir=/app/zookeeper # ============ 编辑结束 =================
-
分别在node2、node3、node4的/app/zookeeper的目录下放置文件myid,内容分别为2/3/4
-
-
启动zookeeper(三台均需要执行)
bin/pulsar-daemon start zookeeper
初始化集群信息
# 初始化元数据到zk
./bin/pulsar initialize-cluster-metadata \
--cluster pulsar-cluster \
--zookeeper node4:2181 \
--configuration-store node4:2181 \
--web-service-url http://node4:8080 \
--web-service-url-tls https://node4:8443 \
--broker-service-url pulsar://node4:6650 \
--broker-service-url-tls pulsar+ssl://node4:6651
注意上边端口的配置,需要和之后的配置保持一致。
部署BookKeeper
-
在三个节点上,分别配置如下内容
zkServers=node2:2181,node3:2181,node4:2181 advertisedAddress=node2 # 不同节点配置不同的IP journalDirectories=/app/bookkeeper/journal ledgerDirectories=/app/bookkeeper/ledger prometheusStatsHttpPort=8100
-
创建响应的目录
mkdir -p /app/bookkeeper/journal mkdir -p /app/bookkeeper/ledger
-
执行初始化元数据命令,(只需在一台节点上执行,共需执行一次)
bin/bookkeeper shell metaformat
-
在三台机器上,分别输入如下命令启动bookie:
# 后台方式启动 bin/pulsar-daemon start bookie # 前台方式启动 bin/bookkeeper bookie
-
验证是否启动成功:(三台节点均可执行)
./bin/bookkeeper shell bookiesanity
如果成功运行,输出最后一行的结果为:
org.apache.bookkeeper.bookie.BookieShell - Bookie sanity test succeeded
部署Broker
-
在每个Broker机器上,配置如下信息:
# vim conf/broker.conf zookeeperServers=node2:2181,node3:2181,node4:2181 configurationStoreServers=node2:2181,node3:2181,node4:2181 advertisedAddress=node2 ## node3 或者 node4 #clusterName与前面zookeeper初始化的cluster一致 clusterName=pulsar-cluster
-
在每个节点上启动broker。
bin/pulsar-daemon start broker
,如果需要关闭broker,可使用命令bin/pulsar-daemon stop broker
。 -
查看集群节点情况。
bin/pulsar-admin brokers list pulsar-cluster
输出结果如下:
"node2:8090" "node3:8090" "node4:8080"
如果报错,可能是因为端口被占用,更改端口即可。
报错信息可以通过如下命令查看(zookeeper和bookie同)。
cat logs/pulsar-broker-FlinkTest04.log | grep ERROR
发布订阅消息
通过启动consumer和producer测试消息是否能传输成功。建议先启动Consumer,再启动Producer。
Consumer
$ bin/pulsar-client consume \
persistent://public/default/test \
-n 100 \
-s "consumer-test" \
-t "Exclusive"
Producer
$ bin/pulsar-client produce \
persistent://public/default/test \
-n 1 \
-m "Hello Pulsar"