Apache Pulsar集群搭建部署详细过程


Posted in Servers onFebruary 12, 2022

一、集群组成说明

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安装包

Apache 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节点的机器上,新建如下文件目录:

Apache Pulsar集群搭建部署详细过程

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

Apache Pulsar集群搭建部署详细过程

注意:
启动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

Apache Pulsar集群搭建部署详细过程

五、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

我们的示例部署正常的话,这一步会显示如下结果:

Apache Pulsar集群搭建部署详细过程

代表此时集群内有存活的节点: IP1、IP2、IP3,端口号都是8080。到这一步,Pulsar的部署就完成了。

六、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

通过浏览器访问docker宿主机IP

Apache Pulsar集群搭建部署详细过程

到此这篇关于Apache Pulsar集群搭建的文章就介绍到这了,更多相关Apache Pulsar集群内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
nginx实现发布静态资源的方法
Mar 31 Servers
Nginx tp3.2.3 404问题解决方案
Mar 31 Servers
nginx proxy_cache 缓存配置详解
Mar 31 Servers
小程序后台PHP版本部署运行 LNMP+WNMP
Apr 01 Servers
windows下快速安装nginx并配置开机自启动的方法
May 11 Servers
Linux安装apache服务器的配置过程
Nov 27 Servers
Windows server 2012 配置Telnet以及用法详解
Apr 28 Servers
Linux磁盘管理方法介绍
Jun 01 Servers
windows server 2016 域环境搭建的方法步骤(图文)
Jun 25 Servers
nginx静态资源的服务器配置方法
Jul 07 Servers
Centos7 Shell编程之正则表达式、文本处理工具详解
Aug 05 Servers
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
Aug 14 Servers
详解nginx安装过程并代理下载服务器文件
Feb 12 #Servers
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
Feb 12 #Servers
使用 Apache Dubbo 实现远程通信(微服务架构)
Nginx 反向代理解决跨域问题多种情况分析
Jan 18 #Servers
详解nginx location指令
Jan 18 #Servers
图文详解nginx日志切割的实现
Jan 18 #Servers
You might like
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
javascript window对象属性整理
2009/10/24 Javascript
javascript 获取url参数和script标签中获取url参数函数代码
2010/01/22 Javascript
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
jquery随意添加移除html的实现代码
2011/06/21 Javascript
jquery中dom操作和事件的实例学习-表单验证
2011/11/30 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
2018/06/24 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
[08:40]Navi Vs Newbee
2018/06/07 DOTA
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
Python读取properties配置文件操作示例
2018/03/29 Python
selenium+python实现自动化登录的方法
2018/09/04 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
使用python接受tgam的脑波数据实例
2020/04/09 Python
详解Python利用configparser对配置文件进行读写操作
2020/11/03 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
小露珠教学反思
2014/04/30 职场文书
工作所在部门证明
2014/09/21 职场文书
2015年党员自评材料
2014/12/17 职场文书
2014企业年终工作总结
2014/12/23 职场文书
努力工作保证书
2015/02/28 职场文书
党员评议自我评价
2015/03/03 职场文书
nginx配置之并发频次限制
2022/04/18 Servers