1. 准备环境
6台带jdk8的Linux服务器(CentOS7为例)
ip分别为:
主机名 | IP地址 |
---|---|
zookeeper1 | 192.168.8.101 |
zookeeper2 | 192.168.8.102 |
zookeeper3 | 192.168.8.103 |
pulsar1 | 192.168.8.108 |
pulsar2 | 192.168.8.109 |
pulsar3 | 192.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服务器, 并解压
java
cd /usr/local
上传apache-pulsar-2.8.1-bin.tar.gz
tar -zxvf apache-pulsar-2.8.1-bin.tar.gz
mv apache-pulsar-2.8.1 pulsar
第二步: 修改bookkeeper集群配置文件
java
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集群的配置文件
java
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目录发送到第二台和第三台
java
cd /usr/local
scp -r pulsar/ pulsar2:$PWD
scp -r pulsar/ pulsar3:$PWD
第五步: 修改第二台和第三台的broker的地址和bookies地址
java
pulsar2:
cd /usr/local/pulsar/conf/
vim bookkeeper.conf
修改其第56行:修改本地ip地址
advertisedAddress=pulsar2
vim broker.conf
修改第44行:更改为本地ip地址
advertisedAddress=pulsar2
第三台节点:都更改为对应IP地址或者主机名即可
4. 启动
第一步: 首先启动zookeeper集群
java
启动命令在zookeeper1启动脚本中,三个同时启动
启动后注意查看状态,必须看到一个leader和两个follower才可以使用
第二步: 初始化元数据(此操作, 仅需要初始化一次即可)
此操作, 仅需要初始化一次即可
java
首先初始化Pulsar集群元数据:
cd /usr/local/pulsar/bin
java
./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
java
./bookkeeper shell metaformat
第三步: 启动bookkeeper服务
java
cd /usr/local/pulsar/bin
java
./pulsar-daemon start bookie
注意:三个节点都需要依次启动
验证是否启动:可三台都检测
java
./bookkeeper shell bookiesanity
提示:
Bookie sanity test succeeded 认为启动成功
第四步: 启动Broker
java
cd /usr/local/pulsar/bin
java
./pulsar-daemon start broker
注意:三个节点都需要依次启动
检测是否启动:
java
./pulsar-admin brokers list pulsar-cluster
提示:
java
[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:模拟开启消费者监听数据
java
./pulsar-client consume persistent://public/default/test -s "consumer-test"
2:模拟生产一条数据
java
./pulsar-client produce persistent://public/default/test --messages "hello-pulsa"
6. Apache Pulsar的可视化监控部署
第一步: 下载Pulsar-Manager
下载地址:
java
https://dist.apache.org/repos/dist/release/pulsar/pulsar-manager/pulsar-manager-0.3.0/apache-pulsar-manager-0.3.0-bin.tar.gz
第二步: 上传到服务器, 并解压
java
cd /usr/local
上传apache-pulsar-manager-0.3.0-bin.tar.gz
解压操作:
tar -zxf apache-pulsar-manager-0.3.0-bin.tar.gz
cd /usr/local/pulsar-manager
接着再次解压:
tar -xvf pulsar-manager.tar
第三步: 拷贝dist包到 pulsar-manager目录下并更名为ui
java
cd /usr/local/pulsar-manager/pulsar-manager
cp -r ../dist ui
第四步: 启动Pulsar
java
cd /usr/local/pulsar-manager/pulsar-manager
./bin/pulsar-manager
第五步: 初始化超级用户密码(只用执行一次)
java
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
java
http://192.168.8.108:7750/ui/index.html
用户名: pulsar
密码: pulsar
Apache Pulsar的可视化监控基本使用
第一步: 点击 + new Enirconment 构建新环境,连接pulsar
Environment Name
java
pulsar-cluster
Service URL
java
http://192.168.8.108:8080
Bookie URL
java
http://192.168.8.108:6650