• 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.gz
    
    tar -zxvf apache-pulsar-2.8.1-bin.tar.gz
    
    mv apache-pulsar-2.8.1 pulsar
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    第二步: 修改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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    第三步: 修改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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

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

    cd /usr/local
    scp -r pulsar/ pulsar2:$PWD
    scp -r pulsar/ pulsar3:$PWD
    
    • 1
    • 2
    • 3

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

    pulsar2:
    cd /usr/local/pulsar/conf/
    vim bookkeeper.conf
    修改其第56行:修改本地ip地址
    advertisedAddress=pulsar2
    
    vim broker.conf
    修改第44行:更改为本地ip地址
    advertisedAddress=pulsar2
    
    第三台节点:都更改为对应IP地址或者主机名即可
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    4. 启动

    第一步: 首先启动zookeeper集群

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

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

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

    首先初始化Pulsar集群元数据:
    cd /usr/local/pulsar/bin
    
    • 1
    • 2
    ./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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

    ./bookkeeper shell metaformat
    
    • 1

    第三步: 启动bookkeeper服务

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

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

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

    ./bookkeeper shell bookiesanity
    
    • 1

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

    第四步: 启动Broker

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

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

    检测是否启动:

    ./pulsar-admin brokers list pulsar-cluster
    
    • 1

    提示:

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

    认为启动成功

    5. 测试

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

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

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

    2:模拟生产一条数据

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

    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
    
    • 1

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

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

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

    第四步: 启动Pulsar

    cd /usr/local/pulsar-manager/pulsar-manager
    ./bin/pulsar-manager
    
    • 1
    • 2

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

    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"}'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    第六步: 访问Pulsar UI

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

    用户名: pulsar
    密码: pulsar

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

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

    Environment Name

    pulsar-cluster
    
    • 1

    Service URL

    http://192.168.8.108:8080
    
    • 1

    Bookie URL

    http://192.168.8.108:6650
    
    • 1
  • 相关阅读:
    PCB叠层设计
    MacOS下用Frida注入目标进程的流程
    Linux环境升级npm和node的版本
    Python: 数据类型转换总结(list-np.array-torch.tensor)
    分布式文件存储系统FastDFS[1]-介绍以及安装
    leetcode448找到所有数组中消失的数字
    云原生微服务 Spring Cloud Hystrix 降级、熔断实战应用
    【TcaplusDB知识库】Tmonitor单机安装指引介绍(一)
    普通话水平测试考试命题自拟-(背诵版)
    Benji Bananas 会员通行证持有人第二季奖励活动更新一览
  • 原文地址:https://blog.csdn.net/weixin_46048207/article/details/136496809