目录
- 一、集群组成说明
- 二、安装前置条件
- 三、zookeeper集群搭建
- 四、bookkeeper集群搭建
- 五、broker集群搭建
- 六、docker安装pulsar-dashboard
一、集群组成说明
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/datalog: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
我们的示例部署正常的话,这一步会显示如下结果:
代表此时集群内有存活的节点: 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集群内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!