一、准备资源
1、3台主机,系统centOS7.8,配置8C16G
2、JDK8运行环境
3、Pulsar安装包
二、集群说明
搭建Pulsar集群至少需要3个组件
ZooKeeper集群(3个ZooKeeper节点组成)
bookie集群(也称为BookKeeper集群。3个BookKeeper节点组成)
broker集群(3个Pulsar节点组成,broker是Pulsar的自身实例)
Pulsar的安装包已包含了搭建集群所需的各个组件库,无需单独下载ZooKeeper 安装包和 BookKeeper 安装包。
3台Linux服务器IP分别为10.206.0.86、10.206.0.61和10.206.0.69
三、安装JDK
在3台Linux裸机服务器上分别安装JDK(要求版本不低于JDK8)
官网或者其他途径下载jdk安装包
解压安装包
将解压包拷贝到/usr/java下
$ sudo mkdir -p /usr/java
$ cp -r jdk1.8.0_161 /usr/java/
添加环境变量
在/etc/profile 文件最后添加变量
export JAVA_HOME=/usr/java/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
设置配置文件生效
source /etc/profile
java -version
四、安装pulsar
下载pulsar安装包
在官网https://pulsar.apache.org/download/ 下载安装包:
上传1台服务器并解压
$ tar -xvf apache-pulsar-2.8.1-bin.tar.gz
配置部署zookeeper集群
(1)新建文件夹并写入配置
服务器1:
新建data/zookeeper目录和log/zookeeper目录
$ mkdir -p data/zookeeper
$ mkdir -p log/zookeeper
新建文件myid,写入1
echo 1 > data/zookeeper/myid
服务器2:
新建data/zookeeper目录和log/zookeeper目录
$ mkdir -p data/zookeeper
$ mkdir -p log/zookeeper
新建文件myid,写入 2
echo 2 > data/zookeeper/myid
服务器3:
新建data/zooker目录和log/zookeeper目录
mkdir -p data/zookeeper
mkdir -p log/zookeeper
新建文件myid,写入 3
echo 3 > data/zookeeper/myid
(2)配置zookeeper.conf文件
进入服务器1的pulsar解压目录的配置文件进行修改zookeeper.conf文件
修改内容:
dataDir=/root/data/zookeeper
dataLofdir=/root/log/zookeeper
添加zookeeper集群地址:
server.1=10.206.0.86:2888:3888
server.2=10.206.0.61:2888:3888
server.3=10.206.0.69:2888:3888
将整个安装目录拷贝到服务器2和3上;保证zookeeper的配置文件完全相同。
(3)启动zookeeper并验证启动成功
3台服务器上都需要执行
进入pulsar的目录
cd apache-pulsar-2.8.1/
执行后台运行命令:
./bin/pulsar-daemon start zookeeper
3台都执行后台运行后,任意一台执行zookeeper客户端连接命令
./bin/pulsar zookeeper-shell
查看到结果如下图则成功:
(4)在任意一个zookeeper节点初始化集群元数据(不需要每台都执行)
进入pulsar目录,并执行一下命令:
$ ./bin/pulsar initialize-cluster-metadata \
--cluster pulsar-cluster \
--zookeeper 10.206.0.86:2181 \
--configuration-store 10.206.0.86:2181 \
--web-service-url http://pulsar.cluster.com:8080 \
--web-service-url-tls https://pulsar.cluster.com:8443 \
--broker-service-url pulsar://http://pulsar.cluster.com:6650 \
--broker-service-url-tls pulsar+ssl://http://pulsar.cluster.com:6651
(5)查看zookeeper配置是否成功
任意一台执行zookeeper客户端连接命令:
./bin/pulsar zookeeper-shell
连接成功后,Enter键,使用ZooKeeper命令查看ls /,结果如图则配置成功:
配置部署bookkeeper集群
(1)创建bookie所需要目录
3台服务器都需要搭建
mkdir -p /root/data/bookkeeper/journal
mkdir -p /root/data/bookkeeper/ledgers
(2)修改3台服务器pulsar目录下的conf/bookkeeper.conf文件
服务器1:
advertisedAddress=10.206.0.86
zkServers=10.206.0.86:2181,10.206.0.61:2181,10.206.0.69:2181
journalDirectory=/root/data/bookkeeper/journal
ledgerDirectories=/root/data/bookkeeper/ledgers
服务器2:
advertisedAddress=10.206.0.61
zkServers=10.206.0.86:2181,10.206.0.61:2181,10.206.0.69:2181
journalDirectory=/root/data/bookkeeper/journal
ledgerDirectories=/root/data/bookkeeper/ledgers
服务器3:
advertisedAddress=10.206.0.69
zkServers=10.206.0.86:2181,10.206.0.61:2181,10.206.0.69:2181
journalDirectory=/root/data/bookkeeper/journal
ledgerDirectories=/root/data/bookkeeper/ledgers
(3)初始化元数据,并启动bookie集群
1台服务器上执行初始化元数据命令(只需要1台机器上执行)
./bin/bookkeeper shell metaformat
出现提示,输入Y:
3台服务器上分别后台进程启动bookie:
./bin/pulsar-daemon start bookie
验证是否启动成功
./bin/bookkeeper shell bookiesanity
配置部署broker集群
(1)修改配置文件broker.conf
服务器1:
zookeeperServers=10.206.0.86:2181,10.206.0.61:2181,10.206.0.69:2181
configurationStoreServers=10.206.0.86:2181,10.206.0.61:2181,10.206.0.69:2181
advertisedAddress=10.206.0.86
clusterName=pulsar-cluster #ZooKeeper 里初始化元数据时指定的集群名(--cluster pulsar-cluster)相同clusterName=pulsar-cluster
服务器2:
zookeeperServers=10.206.0.86:2181,10.206.0.61:2181,10.206.0.69:2181
configurationStoreServers=10.206.0.86:2181,10.206.0.61:2181,10.206.0.69:2181
advertisedAddress=10.206.0.61
clusterName=pulsar-cluster #ZooKeeper 里初始化元数据时指定的集群名(--cluster pulsar-cluster)相同clusterName=pulsar-cluster
服务器3:
zookeeperServers=10.206.0.86:2181,10.206.0.61:2181,10.206.0.69:2181
configurationStoreServers=10.206.0.86:2181,10.206.0.61:2181,10.206.0.69:2181
advertisedAddress=10.206.0.69
clusterName=pulsar-cluster #ZooKeeper 里初始化元数据时指定的集群名(--cluster pulsar-cluster)相同clusterName=pulsar-cluster
(2)启动broker
3台服务器分别以后台程序启动broker
./bin/pulsar-daemon start broker
查看集群broker节点
bin/pulsar-admin brokers list pulsar-cluster
五、启停操作
分zookeeper,bookkeeper,broker 3个组件;每个组件3台都是需要执行的。
启动顺序:zookeeper->bookkeeper->broker。
停止顺序:borker->bookkeeper->zookeeper。
Bookkeeper启动命令:bin/pulsar-daemon start bookie
Bookkeeper停止命令:bin/pulsar-daemon stop bookie
Broker启动命令:bin/pulsar-daemon start broker
Broker停止命令:bin/pulsar-daemon stop broker