Linux服务器搭建Pulsar集群

目录

1. 准备环境

2. 部署JDK环境(要求版本不低于JDK8)

3. 下载Pulsar最新安装包

4. Zookeeper集群部署

4.1 搭建pulsar集群至少需要三个组件

4.2 创建文件夹

4.3 pulsar安装包

4.4 部署zookeeper集群

 4.4.1 三台服务器创建目录

 4.4.2 修改zookeeper配置文件

 4.4.3 启动zookeeper

 4.4.4 初始化zookeeper

 4.4.5 执行zookeeper客户端连接命令

 4.4.6 重新初始化或者删除数据时

5. 部署配置bookkeeper集群

5.1 分别在各节点执行

5.2 修改配置文件

5.3 先初始化,再启动 

6. 部署配置Broker集群

6.1 修改配置文件

6.2 启动各个节点

 7. 测试

8. docker部署pulsar-manager搭建


1. 准备环境

3台Linux裸机服务器(CentOS7为例)

ip分别为:

ip地址 192.168.1.96
ip地址 192.168.1.97
ip地址 192.168.1.98

2. 部署JDK环境(要求版本不低于JDK8)

安装JDK参考:

Linux部署jdk1.8_率小气的博客-CSDN博客

3. 下载Pulsar最新安装包

下载地址:

Apache Pulsar

4. Zookeeper集群部署

4.1 搭建pulsar集群至少需要三个组件

pulsar安装包包含以下组件,无需单独下载组件安装包

  • zookeeper集群
  • bookkeeper集群
  • broker集群

4.2 创建文件夹

在工作目录下创建三个文件夹

mkdir -p /home/pulsar/zookeeper

mkdir -p /home/pulsar/bookies

mkdir -p /home/pulsar/broker

4.3 pulsar安装包

把下载的pulsar安装包上传至linux服务器,并解压安装,这里我下载的2.9.1版本

tar xf apache-pulsar-2.9.1-bin.tar.gz

把解压后的文件分别复制至所创建的3个文件夹

cp -ir /opt/apache-pulsar-2.9.1/* /home/pulsar/zookeeper/
cp -ir /opt/apache-pulsar-2.9.1/* /home/pulsar/broker/
cp -ir /opt/apache-pulsar-2.9.1/* /home/pulsar/bookie/

 4.4 部署zookeeper集群

 4.4.1 三台服务器创建目录

  mkdir -p /home/pulsar/data/zookeeper

  执行:

echo 1 > /home/pulsar/data/zookeeper/myid

echo 2 > /home/pulsar/data/zookeeper/myid

echo 3 > /home/pulsar/data/zookeeper/myid

 4.4.2 修改zookeeper配置文件

vim  /home/pulsar/zookeeper/conf/zookeeper.conf

dataDir= /home/pulsar/data/zookeeper/
server.1=192.168.1.96:2888:3888
server.2=192.168.1.97:2888:3888
server.3=192.168.1.98:2888:3888

 4.4.3 启动zookeeper

分别启动三台Linux服务器zookeeper

cd /home/pulsar/zookeeper/

#执行启动命令
/bin/pulsar-daemon start zookeeper

#停止命令
/bin/pulsar-daemon stop zookeeper

#查看进程
ps aux|grep zookeeper

#查看端口情况
ss -ntlp
netstat -tpnl|grep 2181

  4.4.4 初始化zookeeper

#初始化
pulsar initialize-cluster-metadata \
--cluster pulsar-cluster \
--zookeeper 192.168.1.96:2181 \
--configuration-store 192.168.1.96:2181 \
--web-service-url http://192.168.1.96:8080,http://192.168.1.97:8080,http://192.168.1.98:8080 \
--web-service-url-tls https://192.168.1.96:8443,192.168.1.97:8443,192.168.1.98:8443 \
--broker-service-url pulsar://192.168.1.96:6650,192.168.1.97:6650,192.168.1.98:6650 \
--broker-service-url-tls pulsar+ssl://192.168.1.96:6651,192.168.1.97:6651,192.168.1.98:6651

  4.4.5 执行zookeeper客户端连接命令

#执行zookeeper客户端命令,如果是默认端口情况下,执行如下命令连接
bin/pulsar zookeeper-shell

#指定ip和端口的情况下,执行如下命令连接
/bin/pulsar zookeeper-shell -server 192.168.1.96:2181
/bin/pulsar zookeeper-shell -server 192.168.1.97:2181
/bin/pulsar zookeeper-shell -server 192.168.1.98:2181

#查看所有zookeeper节点数据,命令如下
ls /

#显示,表示成功
[admin, bookies, ledgers, managed-ledgers, namespace, pulsar, stream, zookeeper]

Linux服务器搭建Pulsar集群_第1张图片

 4.4.6 重新初始化或者删除数据时

   建议:先停掉zookeeper,然后直接删除单台zookeeper数据目录,然后再重新启动

   重新初始化,删除zookeeper的数据,日志也删除

5. 部署配置bookkeeper集群

5.1 分别在各节点执行

创建bookies所需目录

mkdir -p /home/pulsar/bookies/tmp/journal
mkdir -p /home/pulsar/bookies/tmp/ledgers

5.2 修改配置文件

vim /home/pulsar/bookies/conf/bookkeeper.conf

journalDirectory=/home/admin/bookies/tmp/journal

ledgerDirectories=/home/admin/bookies/tmp/ledgers

#advertisedAddress修改为服务器对应的ip
advertisedAddress=192.168.1.96

#修改端口号8000为8100,zookeeper占用了8000端口
prometheusStatsHttpPort=8100

#修改zookeeper地址和端口信息
zkServers=192.168.1.96:2181,192.168.1.97:2181,192.168.1.98:2181

5.3 先初始化,再启动 

#查看8000端口是否占用, 如果占用,修改为8100
netstat -tpnl |grep 8000   

#httpServerPort默认也是8000,建议修改,我这里修改为:8100
prometheusStatsHttpPort=8100

# 初始化元数据,并启动 bookie 集群
# 执行初始化元数据命令;若出现提示,输入 Y,继续(只需在任意一个bookie节点执行一次)
bin/bookkeeper shell metaformat

#bookie关闭命令
bin/pulsar-daemon stop bookie

#启动bookie命令,以后台进程启动bookie
bin/pulsar-daemon start bookie

#日志查看
tail f  /home/pulsar/bookies/logs/pulsar-bookie-localhost.localdomain.log

#验证是否启动成功
bin/bookkeeper shell bookiesanity

#出现如下显示,表示启动成功Bookie
Bookie sanity test succeeded

6. 部署配置Broker集群

6.1 修改配置文件

#修改配置文件
vim /home/pulsar/broker/conf/broker.conf

zookeeperServers=192.168.1.96:2181,192.168.1.97:2181,192.168.1.98:2181
configurationStoreServers=192.168.1.96:2181,192.168.1.97:2181,192.168.1.98:2181

#修改服务器对应的ip
advertisedAddress=192.168.1.96

#修改zookeeper集群名称,初始化时候所用的集群名称(--cluster pulsar-cluster)
clusterName=pulsar-cluster

#查看端口是否被占用,如果占用修改为其他端口
webServicePort=8080

6.2 启动各个节点

#启动命令
bin/pulsar-daemon start broker

#停止命令
bin/pulsar-daemon stop broker

# 查看集群 brokers 节点情况
bin/pulsar-admin brokers list pulsar-cluster
bin/pulsar-admin --admin-url http://192.168.1.97:8080 brokers list pulsar-cluster

#显示如下:表示集群搭建成功
192.168.1.96:8080
192.168.1.97:8080
192.168.1.98:8080

 7. 测试

#订阅
bin/pulsar-client consume \
  persistent://public/default/test \
  -n 100 \
  -s "consumer-test" \
  -t "Exclusive"

#发送
bin/pulsar-client produce \
  persistent://public/default/test \
  -n 1 \
  -m "Hello Pulsar"

----- 收到消息 -----
Hello Pulsar

8. docker部署pulsar-manager搭建

docker run -d  -p 9527:9527 -p 7750:7750 \
-e SPRING_CONFIGURATION_FILE=/pulsar-manager/pulsar-manager/application.properties \
--name pulsar-manager \
-e pulsar.peek.message=true \
apachepulsar/pulsar-manager:v0.2.0

CSRF_TOKEN=$(curl http://localhost:17750/pulsar-manager/csrf-token)

curl \
   -H 'X-XSRF-TOKEN: $CSRF_TOKEN' \
   -H 'Cookie: XSRF-TOKEN=$CSRF_TOKEN;' \
   -H "Content-Type: application/json" \
   -X PUT http://localhost:7750/pulsar-manager/users/superuser \
   -d '{"name": "admin", "password": "apachepulsar", "description": "test", "email": "***@qq.com"}'

登录访问:

我部署在192.168.1.96服务器上面

http://192.168.1.96:9527

用户名:admin

密码:apachepulsar

Linux服务器搭建Pulsar集群_第2张图片

 Linux服务器搭建Pulsar集群_第3张图片

 以上基本部署完成!!!

你可能感兴趣的:(pulsar,linux,服务器,运维)