# 部署方案:
集群模式部署,broker和bookie混合部署,zk同时部署在三台机器上面(资源充足zk最好单独部署,注意pulsar和zk版本兼容性)
# 1.集群资源使用(实际测试情况CPU使用率比内存高,建议CPU设置大于内存,不同业务场景有差异)
三台主机centos7 16核16GB,每台挂载1TB机械硬盘(不包含系统盘),磁盘使用CFQ调度算法
集群节点: 192.168.0.107,192.168.0.108,192.168.0.109
Pulsar 社区的推荐的内存分配策略如下:
OS: 1 ~ 2 GB
JVM: 1/2
heap: 1/3
direct memory: 2/3
PageCache: 1/2
资源分配如下,zk集群同时部署,预留一部分内存给zk:
OS: 2GB
Broker: 4GB
heap: 1.5GB
direct memory: 2.5GB
Bookie: 4GB
heap: 1.25GB
direct memory: 2.75GB
PageCache: 6GB
# 2.创建集群管理用户和用户组,每个节点都创建执行
添加pulsar用户和用户组
useradd pulsar
groupadd pulsar
usermod -a -G pulsar pulsar
设置切换用户不需要密码
root用户下执行 visudo
文件最下面添加:
pulsar ALL=(ALL) NOPASSWD: ALL
授权挂载盘数据访问权限:
chmod -R 777 /data
polkit权限管理(pulsar授权执行systemctl命令)
vi /usr/share/polkit-1/actions/org.freedesktop.systemd1.policy
将对应manage-units的defaults中的授权全部改为yes
```
<defaults>
<allow_any>yes</allow_any>
<allow_inactive>yes</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
```
重启polkit
systemctl restart polkit
# 3.关闭防火墙
查看防火墙状态: firewall-cmd --state
关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
systemctl disable iptables
# 4. 部署jdk11
yum install -y java-11-openjdk.x86_64
默认的安装目录是在: /usr/lib/jvm/java-11-openjdk-11.0.18.0.10-1.el7_9.x86_64
配置环境变量
vi /etc/profile
# 在profile文件末尾增加
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.18.0.10-1.el7_9.x86_64
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
# 使profile文件生效
source /etc/profile
# 5.部署zookeeper
5.1 下载资源:
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.6.4/apache-zookeeper-3.6.4-bin.tar.gz
5.2 解压 tar -zxvf apache-zookeeper-3.6.4-bin.tar.gz
5.3 配置 zookeeper
# 每个节点分别创建data,logs目录
mkdir -p /data/zookeeper/data
mkdir -p /data/zookeeper/logs
# 节点一192.168.0.107
echo 1 > /data/zookeeper/data/myid
# 节点二192.168.0.108
echo 2 > /data/zookeeper/data/myid
# 节点三192.168.0.109
echo 3 > /data/zookeeper/data/myid
# 每个节点设置 zoo.cfg配置,systemc