Apache Pulsar的分布式集群模式构建

1. 准备环境

6台带jdk8的Linux服务器(CentOS7为例)

ip分别为:

主机名IP地址
zookeeper1192.168.8.101
zookeeper2192.168.8.102
zookeeper3192.168.8.103
pulsar1192.168.8.108
pulsar2192.168.8.109
pulsar3192.168.8.110

2. 下载Pulsar最新安装包

下载地址:Apache Pulsar

3. 构建

搭建Pulsar集群全少需要3个组件:ZooKeeper集群、BookKeeper集群和broker集群(Broker是Pulsar的自身实例)。这
三人集群组件如下:

  • ZooKeeper集群(3个ZooKeeper节点组成)
  • bookie集群(也称为BookKeeper集群,3个BookKeeper节点组成)
  • broker集群(3个Pulsar节点组成)

Pulsar的安装包已包含了搭建集群所需的各个组件库。无需单独下载ZooKeeper安装包和BookKeeper安装包。(在实际
中,zookeeper我们并不仅仅应用在pulsar上,包括HBase等其他的组件也需要依赖,所以我们此处zookeeper使用外置zk集群环境

注意:如果是在内网测试环境搭建集群,为了避免防火墙造成端口开启繁琐,可以关闭服务器防火墙

第一步: 将下载的pulsar安装包上传到linux服务器, 并解压

cd /usr/local
上传apache-pulsar-2.8.1-bin.tar.gztar -zxvf apache-pulsar-2.8.1-bin.tar.gzmv apache-pulsar-2.8.1 pulsar

第二步: 修改bookkeeper集群配置文件

cd /usr/local/pulsar/conf/
vim bookkeeper.conf修改其第56行:修改本地ip地址(版本不一样位置可能不一样)
advertisedAddress=pulsar1
修改其39行:(版本不一样位置可能不一样)
journalDirectory=/usr/local/pulsar/tmp/journal
修改其389行:(版本不一样位置可能不一样)
ledgerDirectories=/usr/local/pulsar/tmp/ledgers
修改617行:(版本不一样位置可能不一样)
zkServers=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181

第三步: 修改broker集群的配置文件

cd /usr/local/pulsar/conf/
vim broker.conf修改第98行:修改集群的名称(版本不一样位置可能不一样)
clusterName=pulsar-cluster
修改第23行:配置zookeeper地址(版本不一样位置可能不一样)
zookeeperServers=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
修改第26行:配置zookeeper地址(版本不一样位置可能不一样)
configurationStoreServers=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
修改第44行:更改为本地ip地址(版本不一样位置可能不一样)
advertisedAddress=pulsar1

第四步: 将配置好bookies目录和brokers目录发送到第二台和第三台

cd /usr/local
scp -r pulsar/ pulsar2:$PWD
scp -r pulsar/ pulsar3:$PWD

第五步: 修改第二台和第三台的broker的地址和bookies地址

pulsar2:
cd /usr/local/pulsar/conf/
vim bookkeeper.conf
修改其第56行:修改本地ip地址
advertisedAddress=pulsar2vim broker.conf
修改第44行:更改为本地ip地址
advertisedAddress=pulsar2第三台节点:都更改为对应IP地址或者主机名即可

4. 启动

第一步: 首先启动zookeeper集群

启动命令在zookeeper1启动脚本中,三个同时启动
启动后注意查看状态,必须看到一个leader和两个follower才可以使用

第二步: 初始化元数据(此操作, 仅需要初始化一次即可)

此操作, 仅需要初始化一次即可

首先初始化Pulsar集群元数据:
cd /usr/local/pulsar/bin
./pulsar initialize-cluster-metadata \
--cluster pulsar-cluster \
--zookeeper zookeeper1:2181,zookeeper2:2181,zookeeper3:2181 \
--configuration-store zookeeper1:2181,zookeeper2:2181,zookeeper3: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

接着初始化bookkeeper集群:若出现提示输入Y/N:请输入Y

./bookkeeper shell metaformat

第三步: 启动bookkeeper服务

cd /usr/local/pulsar/bin
./pulsar-daemon start bookie

注意:三个节点都需要依次启动

验证是否启动:可三台都检测

./bookkeeper shell bookiesanity

提示:
Bookie sanity test succeeded 认为启动成功

第四步: 启动Broker

cd /usr/local/pulsar/bin
./pulsar-daemon start broker

注意:三个节点都需要依次启动

检测是否启动:

./pulsar-admin brokers list pulsar-cluster

提示:

[root@node1 bin]# ./pulsar-admin brokers iist pulsar-cluster
"node1.itcast.cn:8080"
"node2.itcast.cn:8080"
"node3.itcast.cn:8080"

认为启动成功

5. 测试

在pulsar的bin目录下, 专门提供了一个pulsar-client的客户端工具, Pulsar-Clinet工具允许使用者在运行的集群中消费并发送消息到
Pulsar Topic中

1:模拟开启消费者监听数据

./pulsar-client consume persistent://public/default/test -s "consumer-test"

2:模拟生产一条数据

./pulsar-client produce persistent://public/default/test --messages "hello-pulsa"

6. Apache Pulsar的可视化监控部署

第一步: 下载Pulsar-Manager

下载地址:

https://dist.apache.org/repos/dist/release/pulsar/pulsar-manager/pulsar-manager-0.3.0/apache-pulsar-manager-0.3.0-bin.tar.gz

第二步: 上传到服务器, 并解压

cd /usr/local
上传apache-pulsar-manager-0.3.0-bin.tar.gz
解压操作:
tar -zxf apache-pulsar-manager-0.3.0-bin.tar.gzcd /usr/local/pulsar-manager
接着再次解压:
tar -xvf pulsar-manager.tar

第三步: 拷贝dist包到 pulsar-manager目录下并更名为ui

cd /usr/local/pulsar-manager/pulsar-manager
cp -r ../dist ui

第四步: 启动Pulsar

cd /usr/local/pulsar-manager/pulsar-manager
./bin/pulsar-manager

第五步: 初始化超级用户密码(只用执行一次)

CSRF_TOKEN=$(curl http://192.168.8.108:7750/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://192.168.8.108:7750/pulsar-manager/users/superuser \-d '{"name": "pulsar", "password": "pulsar", "description": "test", "email": "username@test.org"}'

第六步: 访问Pulsar UI

http://192.168.8.108:7750/ui/index.html

用户名: pulsar
密码: pulsar

Apache Pulsar的可视化监控基本使用

第一步: 点击 + new Enirconment 构建新环境,连接pulsar

Environment Name

pulsar-cluster

Service URL

http://192.168.8.108:8080

Bookie URL

http://192.168.8.108:6650

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/731160.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JMeter VS RunnerGo :两大主流性能测试工具对比

说起JMeter,估计很多测试人员都耳熟能详。它小巧、开源,还能支持多种协议的接口和性能测试,所以在测试圈儿里很受欢迎,也是测试人员常用的工具,不少企业也基于JMeter建立起自己的自动化测试能力,提升工作效…

【重要公告】BSV区块链协会开始对Teranode节点软件进行技术测试

​​发表时间:2024年2月22日 Teranode节点软件将使BSV区块链网络的交易处理速度提升至每秒110万笔,从而拓宽企业和政府客户的区块链应用范围。 2024年2月22日,瑞士楚格 - BSV区块链协会宣布已经开始对Teranode节点软件进行技术测试&#xff…

BUUCTF-Misc4

镜子里面的世界1 1.打开附件 解压,是一张图片 2. zsteg工具 用zsteg分析图片 3.得到flag ningen1 1.打开附件 是一张图片 2.binwalk 用binwalk -e 分离文件 3.ARCHPR工具 打开分离后的文件夹,有一个加密的压缩包,用ARCHPR解密 4.解密 将…

superset连接Apache Spark SQL(hive)过程中的各种报错解决

superset连接数据库官方文档:Installing Database Drivers | Superset 我们用的是Apache Spark SQL,所以首先需要安装下pyhive #命令既下载了pyhive也下载了它所依赖的其他安装包 pip install pyhive#多个命令也可下载 pip install sasl pip install th…

‘ jupyter ‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

安装anaconda后,在 Dos黑窗口 运行 jupyter notebook 的两个问题 原因:没配置环境变量 解决方法: 在 系统环境变量Path 中 添加两个地址 这里以anaconda安装在 D:\anaconda\install 下为例 (根据个人安装具体位置而定&#xff…

Elasticsearch:什么是 DevOps?

DevOps 定义 DevOps 是一种现代软件开发方法,它将公司软件开发 (Dev) 和 IT 运营 (Ops) 团队的工作结合起来并实现自动化。 DevOps 提倡这样一种理念:这些传统上独立的团队在协作方面比在孤岛中更有效。 理想情况下,DevOps 团队共同努力改进…

Prompt进阶系列1:LangGPT(从编程语言反思LLM的结构化可复用提示设计框架)

Prompt进阶系列1:LangGPT(从编程语言反思LLM的结构化可复用提示设计框架) 大语言模型 (Large Language Models, LLMs) 在不同领域都表现出了优异的性能。然而,对于非AI专家来说,制定高质量的提示来引导 LLMs 是目前AI应用领域的一项重要挑战。现有的提示…

优惠券秒杀案例 - CAS、Redis+Lua脚本解决高并发并行

目录 一、认识悲观锁和乐观锁? 二、一人一单问题(优化) 三、并行执行带来的问题 3.1Redis实现分布式锁 3.1.1 基础代码 3.1.2 保证释放的锁是自己的 3.1.3 Lua脚本保证原子性 情景介绍: 超卖问题在我们业务中很常见&#x…

Hive中UNION ALL和UNION的区别

1.概述 Hive官方提供了一种联合查询的语法,原名为Union Syntax,用于联合两个表的记录进行查询,此处的联合和join是不同的,join是将两个表的字段拼接到一起,而union是将两个表的记录拼接在一起。 换言之, jo…

合并有序数组

合并有序数组 题目描述:解法思路:解法代码:运行结果: 题目描述: 输入两个升序排列行的序列,将两个序列合并为一个有序序列并输出。 输入包含三行,第一包含两个正整数n, m,用空格分隔…

来说说看到的求职路上可以提高的地方——简历

要进行求职的时候应该遇到的第一件事情就是简历。 随着看到的简历越来越多,也发现了一些问题,来开个帖子来说说这些问题。 格式 让参加面试的人最头疼的地方就是简历格式没有空格。 最近发现好多人的简历格式上都不空格,很多内容完全都在…

AIGC启示录:深度解析AIGC技术的现代性与系统性的奇幻旅程

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

mysql笔记:11. 性能优化

文章目录 概览查询速度优化1. 分析查询语句1.1 EXPLAIN1.2 DESCRIBE 2. 使用索引优化查询3. 优化子查询 数据库结构优化1. 分解表2. 建立中间表3. 增加冗余字段4. 优化插入速度4.1. MyISAM引擎表4.2. InnoDB引擎表 5. 分析表、检查表和优化表5.1. 分析表5.2. 检查表5.3. 优化表…

php使用ElasticSearch

ElasticSearch简介 Elasticsearch 是一个分布式的、开源的搜索分析引擎,支持各种数据类型,包括文本、数字、地理、结构化、非结构化。 Lucene与ElasticSearch Apache Lucene是一款高性能的、可扩展的信息检索(IR)工具库&#xf…

苹果AR设备未来展望:硬件舒适性、软件功能与网络速度等多维度期待

苹果增强现实(AR)设备(可能是指Apple Vision Pro)的期待和改进建议,以及关于硬件、软件、网络速度和WIFI技术的未来展望。以下是对这些观点的综合分析: 硬件与舒适性改进: 更轻更舒适的材料以及更贴合眼眶的设计能够提升用户的佩戴体验,减少长时间使用带来的不适。自动…

嵌入式软件开发面试重点项

最近准备面试了,梳理一些面试经常考试的细节点,不然每次都要去整理,答案未给出。 一、C语言基础 1.1、字节对齐 link Struct和Union字节对齐的内存占用计算方法 link 怎么计算union和struct中字节数计算 1.2、union数据空间大小计算 link 怎么计算u…

灯塔:CSS笔记(2)

一 选择器进阶 后代选择器:空格 作用:根据HTML标签的嵌套关系,,选择父元素 后代中满足条件的元素 选择器语法:选择器1 选择器2{ css } 结果: *在选择器1所找到标签的后代(儿子 孙子 重孙子…

基于SSM的党务政务服务热线平台(有报告)。Javaee项目。ssm项目。

演示视频: 基于SSM的党务政务服务热线平台(有报告)。Javaee项目。ssm项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spri…

503. 下一个更大元素 II

503. 下一个更大元素 II 题目链接&#xff1a;503. 下一个更大元素 II 代码如下&#xff1a; class Solution { public:vector<int> nextGreaterElements(vector<int>& nums) {vector<int> res(nums.size(),-1);stack<int> sta;//单调栈sta.push…

mac本地启动sentinel

启动Sentinel控制台 1&#xff09;下载sentinel控制台jar包 https://github.com/alibaba/Sentinel/releases/download/1.8.6/sentinel-dashboard-1.8.6.jar 2&#xff09;启动sentinel控制台 使用如下命令启动控制台&#xff1a; java -Dserver.port8080 -Dcsp.sentinel.d…