@羲凡——只为了更好的活着
pulsar自从腾讯使用后各种火,最近查看官方文档,实操后整理了一份安装手册,贡献给大家
安装分一下几步:
零、前期准备
一、部署ZooKeeper集群
二、初始化集群元数据
三、部署BookKeeper集群
四、部署Pulsar brokers
安装pulsar2.4.1官网要求每台机器安装至少Java1.8的环境
下载官网:https://archive.apache.org/dist/pulsar/pulsar-2.4.1/
也可以直接下面点击下面链接下载:
https://archive.apache.org/dist/pulsar/pulsar-2.4.1/apache-pulsar-2.4.1-bin.tar.gz
群集中的每台机器都要安装Pulsar软件包,包括运行ZooKeeper和BookKeeper的机器。
tar包解压——tar -zxf apache-pulsar-2.4.1-bin.tar.gz -C /opt/modules/
环境变量——sudo vi /etc/profile
#PULSAR_HOME
export PULSAR_HOME=/opt/modules/pulsar-2.4.1
export PATH=$PATH:$PULSAR_HOME/bin
其实就是下载几个nar包放在 $PULSAR_HOME/connectors目录(该目录需要新建)下,自己在地址上随便下载几个放进去就行了
下载地址:https://archive.apache.org/dist/pulsar/pulsar-2.4.1/connectors/
官网链接:http://pulsar.apache.org/docs/en/deploy-bare-metal/#installing-builtin-connectors-optional
其实就是下载一个nar包放在 PULSAR_HOME/offloaders目录(该目录需要新建)下,将下面的tar包解压后将tiered-storage-jcloud-2.4.1.nar包放在$PULSAR_HOME/offloaders目录下
下载地址:https://archive.apache.org/dist/pulsar/pulsar-2.4.1/apache-pulsar-offloaders-2.4.1-bin.tar.gz
官网链接:http://pulsar.apache.org/docs/en/deploy-bare-metal/#installing-tiered-storage-offloaders-optional
如果已经安装好了,请跳过此步骤。
没安装的,亲查看博客:https://blog.csdn.net/weixin_42003671/article/details/88686454
每个集群将一些元数据写入ZooKeeper。它只需要写一次
pulsar initialize-cluster-metadata \
--cluster pulsar-cluster-1 \
--zookeeper cdh01.com:2181 \
--configuration-store cdh01.com:2181 \
--web-service-url http://cdh03.com:8080 \
--web-service-url-tls https://cdh03.com:8443 \
--broker-service-url pulsar://cdh03.com:6650 \
--broker-service-url-tls pulsar+ssl://cdh03.com:6651
初始化完成,会在最后一行显示 Cluster metadata for ‘pulsar-cluster-1’ setup correctly
如果弄错了想删除已经初始化后的集群,可以在zookeeper中删除两个路径即可
rmr /namespace
rmr /admin/clusters/pulsar-cluster-1
建议选择当前稳定版本
下载官网:https://archive.apache.org/dist/bookkeeper/bookkeeper-4.8.2/
也可以直接下面点击下面链接下载:
https://archive.apache.org/dist/bookkeeper/bookkeeper-4.8.2/bookkeeper-server-4.8.2-bin.tar.gz
tar包解压——tar -zxf bookkeeper-server-4.8.2-bin.tar.gz
环境变量——sudo vi /etc/profile
#BOOKKEEPER_HOME
export BOOKKEEPER_HOME=/opt/modules/bookkeeper-server-4.8.2
export PATH=$PATH:$BOOKKEEPER_HOME/bin
vim $BOOKKEEPER_HOME/conf/bk_server.conf
bookiePort=3181 ##默认是3181,如果默认端口没有被占用请用默认端口
## 修改成自己的zk中的一台机器
metadataServiceUri=zk+hierarchical://cdh01.com:2181/ledgers
## 修改成自己的zk
zkServers=cdh01.com:2181,cdh02.com:2181,cdh03.com:2181
##开启Pulsar Functions功能
extraServerComponents=org.apache.bookkeeper.stream.server.StreamStorageLifecycleComponent
BookKeeper群集中的任何 bookie中运行一次
bookkeeper shell metaformat
bookkeeper-daemon.sh start bookie
bookkeeper shell bookiesanity
如果在某台bookie上检测报错,最简单的一种方式是将$PULSAR_HOME/data 目录下的文件删除
注意事项:各端口一定要是和前面初始化集群元数据的端口保持一致
注意事项:clusterName必须和前面初始化集群元数据时的保持一致
vim $PULSAR_HOME/conf/broker.conf
zookeeperServers=cdh01.com:2181,cdh02.com:2181,cdh03.com:2181
configurationStoreServers=cdh01.com:2181,cdh02.com:2181,cdh03.com:2181
brokerServicePort=6650
brokerServicePortTls=6651
webServicePort=8080
webServicePortTls=8443
clusterName=pulsar-cluster-1
## 如果你只有一台bookie机器,需要将以下三个参数设置成1(默认是2),否者不用改
# Number of bookies to use when creating a ledger
managedLedgerDefaultEnsembleSize=1
# Number of copies to store for each message
managedLedgerDefaultWriteQuorum=1
# Number of guaranteed copies (acks to wait before write is complete)
managedLedgerDefaultAckQuorum=1
## 启用Pulsar Functions
functionsWorkerEnabled=true
启用Pulsar Functions 除了修改functionsWorkerEnabled(上面的broker.conf中已修改)
还要修改vim $PULSAR_HOME/conf/functions_worker.yml
,
pulsarFunctionsCluster: pulsar-cluster-1
a.分发安装包
scp -r pulsar-2.4.1 [email protected]:/opt/modules/
scp -r pulsar-2.4.1 [email protected]:/opt/modules/
b.修改每台机器 vim $PULSAR_HOME/conf/client.conf
将localhost改成本机IP或hostname
webServiceUrl=http://cdh03.com:8080/ #将localhost改成本机IP或hostname
brokerServiceUrl=pulsar://cdh03.com:6650/ #将localhost改成本机IP或hostname
c.启动
pulsar-daemon start broker
订阅test主题(-n:消费的消息数量,-s:订阅的名字,-t:订阅的类型)
pulsar-client consume persistent://public/default/test \
-n 100 -s "consumer-test" -t "Exclusive"
发消息到test主题(-n:发送消息的次数,-m:消息内容)
pulsar-client produce persistent://public/default/test \
-n 1 -m "Hello Pulsar"
结果
----- got message -----
Hello Pulsar
====================================================================
@羲凡——只为了更好的活着
若对博客中有任何问题,欢迎留言交流