pulsar
pulsar
pulsar-manager
pulsar 集群部署
常用命令
压测
本文档使用 MrDoc 发布
-
+
首页
pulsar 集群部署
* ZooKeeper 集群(3 个 ZooKeeper 节点组成) * Broker 集群(3 个 Pulsar 节点组成) * Bookkeeper 集群(也称为 Bookie 集群,3 个 BookKeeper 节点组成) Pulsar 的安装包已包含了搭建集群所需的各个组件库。无需单独下载 ZooKeeper 安装包和 BookKeeper 安装包。(在实际生产环境中,ZooKeeper 我们并不仅仅应用在 Pulsar 上,包括 HBase 等其他的组件也需要依赖,所以生产环境 ZooKeeper 最好使用外置 ZooKeeper 集群环境 ``` 安装 64 位 JRE/JDK 8 或更新版本。 Pulsar 2.9.1 版本 ``` # 1.准备工作 ``` #! /bin/bash echo "192.168.1.234 pulsar1" >> /etc/hosts echo "192.168.1.235 pulsar2" >> /etc/hosts echo "192.168.1.236 pulsar3" >> /etc/hosts mkdir /data && cd /data && \ wget https://archive.apache.org/dist/pulsar/pulsar-2.9.1/apache-pulsar-2.9.1-bin.tar.gz && \ tar zxvf apache-pulsar-2.9.1-bin.tar.gz && \ mkdir -pv /data/apache-pulsar-2.9.1/data/zookeeper && \ mkdir -pv /data/apache-pulsar-2.9.1/data/bookkeeper/journal && \ mkdir -pv /data/apache-pulsar-2.9.1/data/bookkeeper/ledgers && \ cd /data/apache-pulsar-2.9.1 ``` # 2. Pulsar 集群搭建 ## 2.1 zk ``` #vim zookeeper.conf tickTime=10000 dataDir=/var/riemann/zookeeper/data dataLogDir=/var/riemann/zookeeper/log server.1=pulsar1:2888:3888 server.2=pulsar2:2888:3888 server.3=pulsar3:2888:3888 ``` > 参数说明: tickTime:服务器之间或客户端与服务器之间维持心跳的时间间隔 dataDir:当前zookeeper节点的数据存放目录 dataLogDir:当前zookeeper节点的日志存放目录 server.1~3:为zookeeper集群的各节点指定编号 ``` # pulsar1节点操作 echo 1 > /data/apache-pulsar-2.9.1/data/zookeeper/myid # pulsar2节点操作 echo 2 > /data/apache-pulsar-2.9.1/data/zookeeper/myid # pulsar3节点操作 echo 3 > /data/apache-pulsar-2.9.1/data/zookeeper/myid ``` 执行后台运行命令,这个命令是启动 zookeeper: ``` cd /data/apache-pulsar-2.9.1/bin ./pulsar-daemon start zookeeper ``` 执行 zookeeper 客户端连接命令: ``` cd /data/apache-pulsar-2.9.1/bin ./pulsar zookeeper-shell ``` 客户端正常连接,就算 zookeeper 启动好了。 在另外两台服务器上也执行 ./pulsar-daemon start zookeeper,启动 zookeeper 之后,在其中一个 zookeeper 节点的机器上,初始化集群元数据(总共只需执行一次): 例如在 pulsar1 上: ``` ./pulsar initialize-cluster-metadata \ --cluster pulsar-cluster \ --zookeeper pulsar1:2181 \ --configuration-store pulsar1:2181 \ --web-service-url http://pulsar1:8080,pulsar2:8080,pulsar3:8080 \ --web-service-url-tls https://pulsar1:8443,pulsar2:8443,pulsar3:8443 \ --broker-service-url pulsar://pulsar1:6650,pulsar2:6650,pulsar3:6650 \ --broker-service-url-tls pulsar+ssl://pulsar1:6651,pulsar2:6651,pulsar3:6651 ``` 集群元数据说明: 标记 说明 --cluster 集群名称 --zookeeper ZooKeeper集群的“本地”连接字符串。 该连接字符串只需包含ZooKeeper集群任一台机器。 --configuration-store 整个集群实例的配置存储连接字符串。 和--zookeeper标记一样,该连接字符串只需包含ZooKeeper集群中的任一台机器即可。 --web-service-url 集群 web 服务的URL以及端口,这个URL应该是标准的DNS名称,默认的端口是8080(我们不建议使用其他端口) --web-service-url-tls 如果使用TLS,你必须为集群指定一个 TLS web 服务URL。默认端口是8443(我们不建议使用其他端口) --broker-service-url Broker服务的URL,用于与集群中的brokers进行交互。 这个 URL 不应该使用和 web 服务 URL 同样的 DNS名称,而应该是用pulsar方案。 默认端口是6650(我们不建议使用其他端口)。 --broker-service-url-tls 如果使用TLS,你必须为集群指定一个 TLS web 服务URL,以及用于集群中 broker TLS 服务的URL。 默认端口是6651(不建议使用其他端口)。 --- 看到这个日志的话,说明初始化 Broker 集群元数据成功了。  也可以通过./pulsar zookeeper-shell 进入 zk 控制台,通过 ls / 查看所有 zk 节点。如果能看到 bookies,ledgers 等节点,则说明初始化成功了。 如果需要关闭 zookeeper,可使用命令: ``` cd /data/apache-pulsar-2.9.1/bin ./pulsar-daemon stop zookeeper ``` ## 2.2 BookKeeper 集群搭建 在每个部署 bookkeeper 的机器上,修改如下关键配置项: ``` mkdir -p /data/apache-pulsar-2.9.1/data/bookkeeper/journal mkdir -p /data/apache-pulsar-2.9.1/data/bookkeeper/ledgers cd /data/apache-pulsar-2.9.1/conf vim bookkeeper.conf # 修改其第56行,修改本地ip地址。 advertisedAddress=pulsar1 # 修改其第39行 journalDirectory=data/journal # 修改其第400行 ledgerDirectories=data/ledgers # 修改其第628行 zkServers=pulsar1:2181,pulsar2:2181,pulsar3:2181 # 修改其第570行 prometheusStatsHttpPort=8100 ``` >prometheusStatsHttpPort默认是8000,但实际上在bookkeeper.conf中,httpServerPort默认也是8000,会导致端口被占用。 上面的advertisedAddress需要设置为对应机器的ip,而不是全设置为同一个,其它两个机器同理设置成pulsarCluster8、pulsarCluster9。 参数说明: advertisedAddress:指定当前节点的主机名或IP地址 zkServers:指定zookeeper集群,用来将bookkeeper节点的元数据存放在zookeeper集群 journalDirectories:当前bookkeeper节点的journal数据存放目录。 如果需要提高磁盘写入性能,可以指定多个目录用来存放journal数据,关键是每一个目录必须在不同的磁盘,不然反而会影响写入性能。 ledgerDirectories:当前bookkeeper节点的ledger存放目录 执行初始化元数据命令,若出现提示,输入Y继续(该步骤只需在一个bookie节点执行一次,总共只需执行一次): ``` ./bookkeeper shell metaformat ``` 在三台机器上,分别输入以下命令来以后台进程启动 bookie: ``` ./pulsar-daemon start bookie ``` 验证是否启动成功: ``` ./bookkeeper shell bookiesanity ``` 出现`Bookie sanity test succeeded`则代表启动成功。  如果需要关闭 bookkeeper,可使用命令: ``` ./pulsar-daemon stop bookie ``` ## 2.3 Broker 集群搭建 在每个部署 Broker 的机器上,通过编辑 Broker 配置文件,修改如下关键配置项: ``` vim broker.conf # 修改其第101行,修改集群的名称。 # clusterName与前面zookeeper初始化的cluster一致 clusterName=pulsar-cluster # 修改其第23行,配置zk集群的地址。 zookeeperServers=pulsar1:2181,pulsar2:2181,pulsar3:2181 # 修改其第26行,配置zk集群的地址。 configurationStoreServers=pulsar1:2181,pulsar2:2181,pulsar3:2181 # 修改其第47行,更改为本地主机名。 advertisedAddress=pulsar1 ``` >注: 上面的advertisedAddress需要设置为对应机器的ip,而不是全设置为同一个,其它两个机器同理设置成pulsarCluster8、pulsarCluster9。 参数说明: zookeeperServers:指定zookeeper集群,用来将broker节点的元数据存放在zookeeper集群 configurationStoreServers:多集群部署时管理多个pulsar集群元数据的zookeeper集群地址,单集群部署时可以和zookeeperServers设置一样。 advertisedAddress:指定当前节点的主机名或IP地址 clusterName:指定pulsar集群名称 在每个部署 Broker 的机器上,以后台进程启动 Broker。 ``` cd /data/apache-pulsar-2.9.1/bin ./pulsar-daemon start broker # 注:pulsarCluster7、pulsarCluster8、pulsarCluster9 三个节点依次启动 ``` 如果需要关闭 broker,可使用命令: ``` ./pulsar-daemon stop broker ``` 查看集群 brokers 节点是否启动成功 ``` ./pulsar-admin brokers list pulsar-cluster ``` 
admin
2023年10月2日 01:29
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码