Apache Pulsar集群搭建

Apache Pulsar集群搭建目录结构一 集群组成说明二 安装前置条件三 ZooKeeper 集群搭建 1 解压 Pulsar 安装包 2 修改 zookeeper conf 配置文件 三个节点上都需执行此操作 新增或修改如下关键配置项 3 在每个 zookeeper 节点的机器上 新建如下文件目录 4 为每个 zookeeper 节点新建 myid 分别在指定的 sever 上写入配置文件中指定的编号 5 执行后台运行命令 这个命令是启动 zookeeper 6 执行 zookeeper 客户端连接命令 7 在另外两台服务器上也执行 bin pulsar daemon

目录结构

一、集群组成说明

1、搭建Pulsar集群至少需要3个组件:ZooKeeper集群、BookKeeper集群和Broker集群(Broker是Pulsar的自身实例)。这三个集群组件如下: ZooKeeper集群(3个ZooKeeper节点组成) Bookie集群(也称为BookKeeper集群,3个BookKeeper节点组成) Broker集群(3个Pulsar节点组成) 2、Pulsar的安装包已经包含了搭建集群所需的各个组件库,无需单独下载ZooKeeper安装包和BookKeeper安装包。 

二、安装前置条件

1、准备3台测试Linux服务器(Centos 7)。 2、在3台Linux裸机服务器上安装JDK(要求版本不低于JDK8)。 3、下载Pulsar安装包,https://pulsar.apache.org/download/,上传至3台服务器。 

三、ZooKeeper集群搭建

Pulsar安装包内包含了ZooKeeper,也可以自建ZooKeeper,自建ZooKeeper的方式略。安装Pulsar安装包内的ZooKeeper方法如下:

1、解压Pulsar安装包

在这里插入图片描述

切换到根目录:$ cd / 创建data目录:$ mkdir data 解压:$ tar -zxvf apache-pulsar-2.9.1-bin.tar.gz 

2、修改zookeeper.conf配置文件(三个节点上都需执行此操作),新增或修改如下关键配置项:

# dataDir是修改,其他都是新增 dataDir=/data/zookeeper/data dataLogDir=/data/zookeeper/log server.1=IP1:2888:3888 server.2=IP2:2888:3888 server.3=IP3:2888:3888 
参数说明: dataDir:当前zookeeper节点的数据存放目录 dataLogDir:当前zookeeper节点的日志存放目录 server.1~3:为zookeeper集群的各个节点指定编号 

3、在每个zookeeper节点的机器上,新建如下文件目录:

在这里插入图片描述

data:ZooKeeper使用的数据存储目录 mkdir -pv /data/zookeeper/data log:ZooKeeper使用的日志存储目录 mkdir -pv /data/zookeeper/log 

4、为每个zookeeper节点新建myid,分别在指定的sever上写入配置文件中指定的编号:

在server.1服务器上执行bash命令: echo 1 > /data/zookeeper/data/myid 在server.2服务器上执行bash命令: echo 2 > /data/zookeeper/data/myid 在server.3服务器上执行bash命令: echo 3 > /data/zookeeper/data/myid 

5、执行后台运行命令,这个命令是启动zookeeper:

bin/pulsar-daemon start zookeeper 

6、执行zookeeper客户端连接命令:

bin/pulsar zookeeper-shell 客户端正常连接,就算zookeeper启动好了 

7、在另外两台服务器上也执行bin/pulsar-daemon start zookeeper之后,在其中一个zookeeper节点的机器上,初始化集群元数据(总共只需执行一次):

例如在IP1上: bin/pulsar initialize-cluster-metadata \ --cluster pulsar-cluster-zk \ --zookeeper IP1:2181 \ --configuration-store IP1:2181 \ --web-service-url http://IP1:8080,IP2:8080,IP3:8080 \ --web-service-url-tls https://IP1:8443,IP2:8443,IP3:8443 \ --broker-service-url pulsar://IP1:6650,IP2:6650,IP3:6650 \ --broker-service-url-tls pulsar+ssl://IP1:6651,IP2:6651,IP3:6651 
或使用如下指令: bin/pulsar initialize-cluster-metadata \ --cluster pulsar-cluster-zk \ --zookeeper HOSTNAMEIP:2181 \ --configuration-store HOSTNAMEIP:2181 \ --web-service-url http://HOSTNAMEIP:8080 \ --web-service-url-tls https://HOSTNAMEIP:8443 \ --broker-service-url pulsar://HOSTNAMEIP:6650 \ --broker-service-url-tls pulsar+ssl://HOSTNAMEIP:6651 
集群元数据说明: cluster 集群名称 zookeeper ZooKeeper集群连接参数,仅需要包含ZooKeeper集群中的一个节点即可 configuration-store Pulsar实例的配置存储集群(ZooKeeper),多集群部署时才会发挥作用,需要另外部署ZooKeeper集群,但是单集群部署时可以和–zookeeper参数设置一样,只需要包含ZooKeeper集群中的一个节点即可 web-service-url 集群Web服务的URL+端口,URL是一个标准的DNS名称,默认端口8080,不建议修改。 web-service-url-tls 集群Web提供TLS服务的URL+端口,端口默认8443,不建议修改。 broker-service-url 集群brokers服务URL,URL中DNS的名称和Web服务保持一致,URL使用pulsar替代http/http,端口默认6650,不建议修改。 broker-service-url-tls 集群brokers提供TLS服务的URL,默认端口6551,不建议修改。 

8、验证zookeeper初始化集群是否初始化成功

bin/pulsar zookeeper-shell 进入zk控制台,通过ls /查看所有zk节点。能看到bookies,ledgers等节点,则说明初始化成功了。 如果需要关闭zookeeper,可使用命令 bin/pulsar-daemon stop zookeeper 

在这里插入图片描述

注意: 启动3台服务器的zookeeper节点之后,发现zookeeper节点之后无法相互注册,需要开放特定的端口或直接关闭防火墙。下面是firewall防火墙相关操作指令: 
firewall防火墙 1、查看firewall服务状态 systemctl status firewalld 出现Active: active (running)切高亮显示则表示是启动状态。 出现 Active: inactive (dead)灰色表示停止,看单词也行。 2、查看firewall的状态 firewall-cmd --state 3、开启、重启、关闭、firewalld.service服务 # 开启 service firewalld start # 重启 service firewalld restart # 关闭 service firewalld stop 4、查看防火墙规则 firewall-cmd --list-all 5、查询、开放、关闭端口 # 查询端口是否开放 firewall-cmd --query-port=8080/tcp # 开放80端口 firewall-cmd --permanent --add-port=80/tcp # 移除端口 firewall-cmd --permanent --remove-port=8080/tcp #重启防火墙(修改配置后要重启防火墙) firewall-cmd --reload 

四、BookKeeper集群搭建

1、修改bookkeeper.conf配置文件(三个节点上都需执行此操作),修改如下关键配置项:

advertisedAddress=IP1 zkServers=IP1:2181,IP2:2181,IP3:2181 journalDirectory=/data/bookkeeper/journal ledgerDirectories=/data/bookkeeper/ledgers prometheusStatsHttpPort=8100 
注意: 1、prometheusStatsHttpPort默认是8000,但实际上在bookkeeper.conf中,httpServerPort默认也是8000,会导致端口被占用。 2、上面的advertisedAddress需要设置为对应机器的ip,而不是全设置为同一个 
参数说明: advertisedAddress:指定当前节点的主机名或IP地址。 zkServers:指定zookeeper集群,用来将bookkeeper节点的元数据存放在zookeeper集群。 journalDirectories:当前bookkeeper节点的journal数据存放目录。 如果需要提高磁盘写入性能,可以指定多个目录用来存放journal数据,关键是每一个目录必须在不同的磁盘,不然反而会影响写入性能 ledgerDirectories:当前bookkeeper节点的ledger存放目录 

2、在每个部署bookkeeper的机器上,创建bookie所需要目录

mkdir -pv /data/bookkeeper/ mkdir -pv /data/bookkeeper/journal mkdir -pv /data/bookkeeper/ledgers 

3、执行初始化元数据命令,若出现提示,输入Y继续(该步骤只需在一个bookie节点执行一次,总共只需执行一次)

bin/bookkeeper shell metaformat 

4、在三台机器上,分别输入以下命令来以后台进程启动bookie

bin/pulsar-daemon start bookie 

5、验证是否启动成功

bin/bookkeeper shell bookiesanity 出现Bookie sanity test succeeded则代表启动成功。 如果需要关闭bookkeeper,可使用命令 bin/pulsar-daemon stop bookie 

在这里插入图片描述

五、Broker集群搭建

1、在每个部署Broker的机器上,修改broker.conf配置文件,修改如下关键配置项:

zookeeperServers=IP1:2181,IP2:2181,IP3:2181 configurationStoreServers=IP1:2181,IP2:2181,IP3:2181 advertisedAddress=IP1 # clusterName与前面zookeeper初始化的cluster一致 clusterName=pulsar-cluster-zk 
注意: 上面的advertisedAddress需要设置为对应机器的ip,而不是全设置为同一个 
参数说明: zookeeperServers:指定zookeeper集群,用来将broker节点的元数据存放在zookeeper集群 configurationStoreServers:多集群部署时管理多个pulsar集群元数据的zookeeper集群地址,单集群部署时可以和zookeeperServers设置一样 advertisedAddress:指定当前节点的主机名或IP地址 clusterName:指定pulsar集群名称 

2、在每个部署Broker的机器上,以后台进程启动broker

bin/pulsar-daemon start broker 如果需要关闭broker,可使用命令 bin/pulsar-daemon stop broker 

3、查看集群 brokers 节点情况

bin/pulsar-admin brokers list pulsar-cluster 

六、docker安装pulsar-dashboard

Pulsar自带 Dashboard,可对broker、bookie、ZooKeeper 集群和topic等进行监控和统计。

1、安装docker

yum install -y docker systemctl start docker systemctl enable docker 

2、安装pulsar-dashboard

docker run --name pulsar-dashboard -dit -p 80:80 -e SERVICE_URL=http://PULSARSEVERIP:8080 apachepulsar/pulsar-dashboard 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223983.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午12:58
下一篇 2026年3月17日 下午12:58


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号