文章目录
- 安装准备
- 虚拟机部署
- 部署zk集群
- 安装zk集群
- 启动zk集群
- 初始化元数据(zk)
- 关闭zk集群
- 部署BookKeeper集群
- 安装BookKeeper集群
- 初始化元数据(bk)
- 启动BookKeeper
- 停止 BookKeeper
- 部署Brokers集群
- 安装Brokers集群
- 启动 broker
- 停止 broker
- zk集群可用性测试(需要把上面的zk+bk+broker安装完再测)
安装准备
虚拟机部署
1.准备相关安装包
2.jdk版本要求17或以上。
部署zk集群
安装zk集群
每台服务器关闭防火墙后,解压安装包(以安装在home为例):
cd /home
tar -zvxf install_TLQ-CN-ALL_10.0.2.0.tar.gz
mv TLQ-CN zk
## 如果想要用普通用户安装,保险起见可以设置一下属组,其中这里的tlqcn就是普通用户,也就是本次使用的安装用户
chown -R tlqcn:tlqcn /home/zk
cd /home/zk/conf
vi zookeeper.conf
主要是配置以下内容:
dataDir=/home/zk/data
dataLogDir=/home/zk/logs
server.1=192.168.10.119:2888:3888;2181
server.2=192.168.10.120:2888:3888;2181
server.3=192.168.10.121:2888:3888;2181
如果 Zookeeper 与 BookKeeper 在同一台虚拟机上部署,metricsProvider.httpPort=自定义端口号,不要使用 8000
之后每台服务器或者虚拟机上新建刚刚配置的logs目录和data目录,新建myid,如下所示:
#节点 1:
echo 1 >/home/zk/data/myid
#节点 2:
echo 2 >/home/zk/data/myid
#节点 3:
echo 3 >/home/zk/data/myid
启动zk集群
弄好后分别在 3 个节点所在服务器的/home/zk 目录下运行以下命令启动 Zookeeper 节点:
cd /home/zk
bin/tong-daemon start zookeeper
启动后可以看看 这个日志文件有没有报错信息:
如果遇到这种报错(尤其是用jdk17的时候):
可以在conf目录的pulsar_env.sh和bkenv.sh里增加这一段代码:
if [[ $JAVA_MAJOR_VERSION -ge 17 ]]; then
ZGC_OPTS="-XX:+UseZGC"
else
ZGC_OPTS=""
fi
如果遇到这种报错:
确认以下几点即可
1.各个节点之间是否能telnet通对应的端口(日志里提示的是3888)
2.执行以下指令确认节点正常运行:
cd /home/zk
bin/tong zookeeper-shell
ls /
如下所示即为正常,可以ctrl +c退出。
原因:
集群里zk节点启动的时候,是会有启动的快慢的区别的,先启动的zk节点去识别其他节点的时候,如果没识别到,也会有这种报错,之后会重连进行识别。
如需停止 Zookeeper 节点,分别在 3 个节点所在机器的/home/zk 目录下运行以下命令停止 Zookeeper 节点:
cd /home/zk
bin/tong-daemon stop zookeeper
初始化元数据(zk)
在任意一台已部署 Zookeeper 的服务器上,进入/home/zk 目录,执行以下命令,初始化元数据:
bin/tong initialize-cluster-metadata \
--cluster tlq-cn \
--metadata-store zk:192.168.10.119:2181,192.168.10.120:2181,192.168.10.121:2181 \
--configuration-metadata-store zk:192.168.10.119:2181,192.168.10.120:2181,192.168.10.121:2181 \
--web-service-url http://192.168.10.119:8080,192.168.10.120:8080,192.168.10.121:8080 \
--broker-service-url pulsar://192.168.10.119:6650,192.168.10.120:6650,192.168.10.121:6650
关闭zk集群
cd /home/zk
bin/tong-daemon stop zookeeper
部署BookKeeper集群
安装BookKeeper集群
执行以下指令:
cd /home
tar -zvxf install_TLQ-CN-ALL_10.0.2.0.tar.gz
mv TLQ-CN bk
cd /home/bk/conf
#每个节点都要编辑
vi bookkeeper.conf
#找到以下配置进行配置
advertisedAddress=192.168.10.119
zkServers=192.168.10.119:2181,192.168.10.120:2181,192.168.10.121:2181
journalDirectory=/home/bk/data/journal
ledgerDirectories=/home/bk/data/ledgers
prometheusStatsHttpPort=7000
httpServerEnabled=false
licenseIps=192.168.10.118:8888
licensePublicKey=
其中licensePublicKey得通过license server控制台获取秘钥。
初始化元数据(bk)
之后在 3 个节点中的任意一个节点的/home/bk 目录下执行 bin/bookkeeper shell metaformat 初始化元数
据,遇到提示按“y”,只需执行一次。
输出结果:
启动BookKeeper
cd /home/bk
bin/tong-daemon start bookie
启动后可以分别在每个节点执行以下指令进行测试
bin/bookkeeper shell bookiesanity
如下图所示为测试成功:
停止 BookKeeper
cd /home/bk
bin/tong-daemon stop bookie
部署Brokers集群
安装Brokers集群
cd /home
tar -zvxf install_TLQ-CN-ALL_10.0.2.0.tar.gz
mv TLQ-CN broker
cd /home/broker/conf
vi broker.conf
#检查和配置以下内容
metadataStoreUrl=zk:192.168.10.119:2181,192.168.10.120:2181,192.168.10.121:2181
configurationMetadataStoreUrl=zk:192.168.10.119:2181,192.168.10.120:2181,192.168.10.121:2181
brokerServicePort=6650
webServicePort=8080
advertisedAddress=192.168.10.121
clusterName=tlq-cn
licenseIps=192.168.10.118:8888
licensePublicKey=
启动 broker
cd /home/broker/
bin/tong-daemon start broke
检查节点(${clusterName}替换为配置文件里配置的集群名)
cd /home/broker
bin/tong-admin brokers list ${clusterName}
停止 broker
cd /home/broker
bin/tong-daemon stop broker
zk集群可用性测试(需要把上面的zk+bk+broker安装完再测)
cd /home/zk
vi conf/client.conf
#检查和配置以下内容
webServiceUrl=http://192.168.10.119:8080,192.168.10.120:8080,192.168.10.121:8080
brokerServiceUrl=pulsar://192.168.10.119:6650,192.168.10.120:6650,192.168.10.121:6650
保存后在bin目录执行
cd /home/zk
bin/tong-client produce \
persistent://public/default/test \
-n 1 \
-m "Hello Pulsar"
另启一个窗口,执行
cd /home/zk
bin/tong-client consume \
persistent://public/default/test \
-n 100 \
-s "consumer-test" \
-t "Exclusive"