当前位置: 首页 > news >正文

Plusar集群搭建-Ubuntu20.04-Winterm

1 背景

已经部署了Pulsar集群在生产上,新项目需要用到Pulsar。对Pulsar不熟,故搭建练手
环境:Windows10+vmware+Ubuntu20.04,ssh工具使用的Winterm。
使用的是root账户,ubuntu防火墙都ufw disable了。

2 参考文档

集群搭建参考了这位大佬的方式2
https://developer.aliyun.com/article/1323937
监控搭建参考了这位大佬的内容
https://blog.csdn.net/weixin_46048207/article/details/136496809
官方文档
https://pulsar.apache.org/docs/next/getting-started-standalone/

3 资源

pulser-manager
https://mirrors.aliyun.com/apache/pulsar/pulsar-manager/pulsar-manager-0.4.0/

4 版本

java 用到了两个版本,分别是

  • jdk-17.0.14 (pulsar使用)
  • jdk1.8.0_441 (pulsar manager使用)
    pulsar 2.11.3
    zookeeper使用的内置的

5 配置服务器

首先是固定IP,不希望虚拟机重启IP就变了,修改/etc/netplan

network:
  ethernets:
    ens33:
      dhcp4: false
      addresses: [192.168.98.146/24]
      gateway4: 192.168.98.2
      nameservers:
        addresses: [8.8.8.8]
  version: 2

修改完之后记得使用如下命令生效一下

netplan apply

我这里使用了三台虚拟机,分别固定了IP,根据以下内容修改/etc/hostname

192.168.98.146 pulsar1
192.168.98.147 pulsar2
192.168.98.148 pulsar3

根据上边的配置,我们修改hostname

vi /etc/hostname

之后是允许root用户远程登录,需要修改下/etc/ssh/sshd_config,记得service ssh restart

PermitRootLogin yes

然后是建一下目标目录

mkdir -p /usr/local/package/
mkdir -p /usr/local/java/
mkdir -p /usr/local/pulsar/
mkdir -p /usr/local/pulsar-manager/

因为要使用的几个tar.gz包都比较大,为了避免每个虚拟机都要下一遍tar.gz,所以我启用了Windows的iis服务,把压缩包都放在了对应的文件夹里了。这样就可减少下载时间。
使用wget命令,当然也可以使用winterm的sftp功能。

wget http://192.168.98.1/tars/jdk-17.0.14_linux-x64_bin.tar.gz -P /usr/local/package/
tar -zxvf /usr/local/package/jdk-17.0.14_linux-x64_bin.tar.gz -C /usr/local/java/

后边都比较类似,不再赘述。
修改环境变量vim /etc/profile,添加内容后source /etc/profile让配置生效

export JAVA_HOME=/usr/local/java/jdk-17.0.14
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH  

6 配置zookeeper

执行vim /usr/local/pulsar/apache-pulsar-2.11.3/conf/zookeeper.conf
修改对应内容

tickTime=10000
dataDir=/var/zhou/zookeeper/data
dataLogDir=/var/zhou/zookeeper/log
server.1=pulsar1:2888:3888
server.2=pulsar2:2888:3888
server.3=pulsar3:2888:3888

执行以下命令,新建对应的文件夹,注意echo后边的数字,虚拟机递增

mkdir -p /var/zhou/zookeeper/data
mkdir -p /var/zhou/zookeeper/log
echo 1 > /var/zhou/zookeeper/data/myid

启动

/usr/local/pulsar/apache-pulsar-2.11.3/bin/pulsar-daemon start zookeeper

三台虚拟机都启动后,验证下

/usr/local/pulsar/apache-pulsar-2.11.3/bin/pulsar zookeeper-shell

初始化配置数据

/usr/local/pulsar/apache-pulsar-2.11.3/bin/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

7 配置bookkeeper

先建文件夹

mkdir -p /var/zhou/pulsar/data/journal
mkdir -p /var/zhou/pulsar/data/ledgers

编辑配置vim /usr/local/pulsar/apache-pulsar-2.11.3/conf/bookkeeper.conf ,并修改为对应内容

# 修改其第56行,修改本地ip地址。
advertisedAddress=pulsar1
# 修改其第39行
journalDirectory=/var/zhou/pulsar/data/journal
# 修改其第400行
ledgerDirectories=/var/zhou/pulsar/data/ledgers
# 修改其第628行
zkServers=pulsar1:2181,pulsar2:2181,pulsar3:2181
# 修改其第570行
prometheusStatsHttpPort=8100

然后启动并测试

/usr/local/pulsar/apache-pulsar-2.11.3/bin/bookkeeper shell metaformat
/usr/local/pulsar/apache-pulsar-2.11.3/bin/pulsar-daemon start bookie
/usr/local/pulsar/apache-pulsar-2.11.3/bin/bookkeeper shell bookiesanity

8 配置broker

直接修改vim /usr/local/pulsar/apache-pulsar-2.11.3/conf/broker.conf ,改为如下内容,注意主机名要配自己的hostname

# 修改其第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

启动和验证集群

/usr/local/pulsar/apache-pulsar-2.11.3/bin/pulsar-daemon start broker
/usr/local/pulsar/apache-pulsar-2.11.3/bin/pulsar-admin brokers list pulsar-cluster

9 配置pulsar-manager

首先是下载和解压,注意这里IP是我本地地址

wget http://192.168.98.1/tars/apache-pulsar-manager-0.4.0-bin.tar.gz -P /usr/local/package/
tar -zxvf /usr/local/package/apache-pulsar-manager-0.4.0-bin.tar.gz -C /usr/local/pulsar-manager/
cd /usr/local/pulsar-manager/apache-pulsar-manager-0.4.0-bin
tar -xvf pulsar-manager.tar
cp -r dist ./pulsar-manager/ui

然后是修改pulsar-manager的启动文件,在“# Increase the maximum file descriptors if we can.” 上边加上JAVACMD的重新赋值

JAVACMD=/usr/local/java/jdk1.8.0_441/bin/java
# Increase the maximum file descriptors if we can.

启动

nohup /usr/local/pulsar-manager/apache-pulsar-manager-0.4.0-bin/pulsar-manager/bin/pulsar-manager &

初始化管理员账户

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

然后访问看效果

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

到此就完成了集群和管理应用的搭建。

相关文章:

  • 容器化技术
  • AJAX简介
  • 漫画 Coco AI——打造跨平台、定制化搜索与 AI 智能问答体验
  • tradingview 隐藏按钮,隐藏菜单,
  • QML面试笔记--UI设计篇05容器控件
  • PG:incorrect prev-link
  • Tomcat 负载均衡
  • [实战] 天线阵列波束成形原理详解与仿真实战(完整代码)
  • oracle 12c密码长度,复杂度查看与设置
  • android14 keycode 上报 0 解决办法
  • 微软模拟飞行2004快速操作手册
  • 快瞳犬种识别效果图示,120种狗品种精准覆盖
  • MATLAB的24脉波整流器Simulink仿真与故障诊断
  • SU-YOLO:基于脉冲神经网络的高效水下目标检测模型解析
  • Git入门篇
  • 02-阿里云与HTTP协议
  • c++进阶之----c++11(可变参数模板)
  • 学习计划:从MCP入门到项目构建的全面指南
  • Vue.js 中 v-show 的使用及其原理
  • C++ -异常之除以 0 问题(整数除以 0 编译时检测、整数除以 0 运行时检测、浮点数除以 0 编译时检测、浮点数除以 0 运行时检测)
  • 面对非专业人士,科学家该如何提供建议
  • 第四轮伊美核谈判将于11日在阿曼举行
  • 中铁房地产24.7亿元竞得上海松江新城宅地,溢价率20.42%
  • 稳住外贸基本盘,这个中部大省出手了
  • 康子兴评《文明的追求》|野人脚印:鲁滨逊的恐惧与文明焦虑
  • 第1现场 | 50多年来首次!印度举行大规模民防演习