pulsar集群搭建——生产环境

时间:2023-01-03 15:05:58

前置条件,需要JDK环境

192.168.1.1
192.168.1.2
192.168.1.3

写入hosts 所有机器都需要执行

$ cat >>/etc/hosts<<EOF
192.168.1.1 pulsar01 zk01
192.168.1.2 pulsar02 zk02
192.168.1.3 pulsar03 zk03

JDK 所有机器都需要执行

下载地址 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 生效命令

下载pulsar 所有机器都需要执行

$ 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 所有机器都需要执行

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
zk01

mkdir -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

部署Bookkeeper 所有机器都需要执行

编辑配置文件,找到以下配置项

# 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 算成功
pulsar集群搭建——生产环境

初始化集群数据,在其中一台执行就行

$ 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

出现下面这个算成功
pulsar集群搭建——生产环境

配置broker 所有机器都需要执行

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集群搭建——生产环境

收尾

配置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/