IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Pulsar集群搭建 -> 正文阅读

[大数据]Pulsar集群搭建

Pulsar 是一个支持多租户的、高性能的消息中间件。

本文介绍一下pulsar的集群搭建(在3台linux服务器上)

1. 集群组成

1.1 搭建 Pulsar 集群至少需要 3 个组件:ZooKeeper 集群、BookKeeper 集群和 broker 集群(BrokerPulsar 的自身实例)。这三个集群组件如下:

ZooKeeper 集群(多 个 ZooKeeper 节点组成)

bookie 集群(也称为 BookKeeper 集群,多个 BookKeeper 节点组成)

broker 集群(多 个 Pulsar 节点组成)

1.2 Pulsar 的安装包已包含了搭建集群所需的各个组件库。无需单独下载 ZooKeeper 安装包和 BookKeeper 安装包。

1.3 如果是在内网测试环境搭建集群,为了避免防火墙造成端口开启繁琐,可以关闭服务器防火墙。

2. 准备工作

  • 一台主机

  • 3 台 Linux 裸机服务器,配置 4G,2 核

  • JDK 8 运行环境

  • 下载 Pulsar 最新版本安装包

3. 安装jdk

在3台Linux裸机服务器上安装 JDK(要求版本不低于 JDK 8)

3.1 下载jdk,通过ssh工具传至linux服务器上,此处放在/usr/java/目录下,然后解压 tar -zxvf jdk-8u144-linux-x64.tar.gz

3.2 编辑配置文件,配置环境变量。vi /etc/profile 添加以下配置信息

JAVA_HOME=/usr/java/jdk1.8.0_144
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

保存,然后 source /etc/profile 使配置文件生效

3.3 使用命令java -version,若显示jdk版本,则安装成功

[root@localhost java]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
[root@localhost java]# 

按以上步骤,在另外两台linux服务器上也安装jdk

4. 创建集群环境

在工作目录下创建三个文件夹:zookeepers、brokers、bookies

cd /home/admin
mkdir zookeepers
mkdir brokers
mkdir bookies

把下载的 Pulsar 安装包上传到 Linux 服务器,解压安装包

tar -zxvf apache-pulsar-2.8.0-bin.tar.gz

把解压后的文件分别复制到 3 个文件夹

cp -ir  /home/admin/apache-pulsar-2.8.0/* ?  /home/admin/zookeepers/
cp -ir  /home/admin/apache-pulsar-2.8.0/* ? ? /home/admin/brokers/
cp -ir  /home/admin/apache-pulsar-2.8.0/* ? ? /home/admin/bookies/

按照以上步骤,在另外两台 Linux 服务器上也创建集群环境

5. 配置部署 ZooKeeper 集群

5.1 新建文件夹,并写入配置内容

在目录/home/admin下

服务器1:

mkdir -p data/zookeeper
echo 1 > data/zookeeper/myid

服务器2:

mkdir -p data/zookeeper
echo 2 > data/zookeeper/myid

服务器3:

mkdir -p data/zookeeper
echo 3 > data/zookeeper/myid

5.2 配置 zookeeper.conf 文件

[root@localhost /]# cd /home/admin/zookeepers/conf/
[root@localhost conf]# ls
bkenv.sh ? ? ? ? discovery.conf ? ? ? ? ? ? ? ? ?  functions_worker.yml ? presto ? ? ? ? ? ? ? schema_example.conf
bookkeeper.conf  filesystem_offload_core_site.xml  global_zookeeper.conf  proxy.conf ? ? ? ? ? standalone.conf
broker.conf ? ?  functions_log4j2.xml ? ? ? ? ? ?  log4j2-scripts ? ? ? ? pulsar_env.sh ? ? ?  websocket.conf
client.conf ? ?  functions-logging ? ? ? ? ? ? ? ? log4j2.yaml ? ? ? ? ?  pulsar_tools_env.sh  zookeeper.conf
[root@localhost conf]# vi zookeeper.conf
#dataDir是修改,其他都是新增
dataDir=/home/admin/data/zookeeper
dataLogDir=/home/admin/data/zookeeper/log
server.1=IP1:2888:3888
server.2=IP2:2888:3888
server.3=IP3:2888:3888

dataDir:当前zookeeper节点的数据存放目录

dataLogDir:当前zookeeper节点的日志存放目录

server.1~3:为zookeeper集群的各节点指定编号

在另外两台服务器上,对 zookeeper.conf 文件进行完全相同的配置

5.3 在 zookeepers 目录中,执行启动命令

# 进入zookeepers目录
cd /home/admin/zookeepers
# 执行后台运行命令
bin/pulsar-daemon start zookeeper

在另外两台服务器上,也启动

5.4 验证 ZooKeeper 节点是否启动成功

在/home/admin/zookeepers目录下执行 zookeeper 客户端连接命令

bin/pulsar zookeeper-shell

进入命令行界面后,可完全使用 ZooKeeper 的各种命令,如 ls、get 等命令。使用 quit 命令退出命令行界面。

5.5 在任一个 ZooKeeper 节点,初始化集群元数据

在目录/home/admin/zookeepers下,执行命令

bin/pulsar initialize-cluster-metadata \
 ? ?--cluster pulsar-cluster-zk \
 ? ?--zookeeper IP1:2181 \
 ? ?--configuration-store IP1:2181 \
 ? ?--web-service-url http://IP1:8080,IP2:8080,IP3:8080 \
 ? ?--web-service-url-tls https://IP1:8443,IP2:8443,IP3:8443 \
 ? ?--broker-service-url pulsar://IP1:6650,IP2:6650,IP3:6650 \
 ? ?--broker-service-url-tls pulsar+ssl://IP1:6651,IP2:6651,IP3:6651

集群元数据说明

  1. cluster 集群名称

  2. zookeeper ZooKeeper集群连接参数,仅需要包含ZooKeeper集群中的一个节点即可

  3. configuration-store Pulsar实例的配置存储集群(ZooKeeper),多集群部署时才会发挥作用,需要另外部署ZooKeeper集群,但是单集群部署时可以和–zookeeper参数设置一样,只需要包含ZooKeeper集群中的一个节点即可

  4. web-service-url 集群Web服务的URL+端口,URL是一个标准的DNS名称,默认端口8080,不建议修改。

  5. web-service-url-tls 集群Web提供TLS服务的URL+端口,端口默认8443,不建议修改。

  6. broker-service-url 集群brokers服务URL,URL中DNS的名称和Web服务保持一致,URL使用pulsar替代http/http,端口默认6650,不建议修改。

  7. broker-service-url-tls 集群brokers提供TLS服务的URL,默认端口6551,不建议修改。

5.6 在目录/home/admin/zookeepers下查看集群元数据是否初始化成功

执行 ZooKeeper 客户端连接命令

bin/pulsar zookeeper-shell

然后使用zookeeper命令查看

ls /
[admin, bookies, counters, ledgers, loadbalance, managed-ledgers, namespace, pulsar, stream, zookeeper]

看到如图所内容,表示初始化成功

6. 配置部署 BookKeeper 集群

6.1 修改配置文件 bookkeeper.conf

# 进入配置文件目录
cd /home/admin/brokers/conf
# 编辑 bookkeeper.conf 文件
vi bookkeeper.conf
advertisedAddress=IP1
zkServers=IP1:2181,IP2:2181,IP3:2181
journalDirectories=/home/admin/bookies/tmp/journal
ledgerDirectories=/home/admin/bookies/tmp/ledger
prometheusStatsHttpPort=8100

advertisedAddress:指定当前节点的主机名或IP地址

zkServers:指定zookeeper集群,用来将bookkeeper节点的元数据存放在zookeeper集群

journalDirectories:当前bookkeeper节点的journal数据存放目录。 如果需要提高磁盘写入性能,可以指定多个目录用来存放journal数据,关键是每一个目录必须在不同的磁盘,不然反而会影响写入性能

ledgerDirectories:当前bookkeeper节点的ledger存放目录

注意

  1. prometheusStatsHttpPort默认是8000,但实际上在bookkeeper.conf中,httpServerPort默认也是8000,会导致端口被占用。

  2. 上面的advertisedAddress需要设置为对应机器的ip,而不是全设置为同一个

6.2 初始化元数据,并启动 bookie 集群

# 进入 bookies 目录
cd  /home/admin/bookies
# 执行初始化元数据命令;若出现提示,输入 Y,继续(只需在一个bookie节点执行一次)
bin/bookkeeper shell metaformat
# 以后台进程启动bookie
bin/pulsar-daemon start bookie

注意:若多次初始化元数据会导致 instanceId not matching 的问题

同样操作启动另外两个 bookie 节点

验证 bookie 是否启动成功

# 进入 bookies 目录
cd /home/admin/bookies
# 验证是否启动成功
bin/bookkeeper shell bookiesanity
# 出现如下显示,表示启动成功Bookie
sanity test succeeded.

7. 部署配置Broker集群

7.1 修改配置文件 broker.conf

# 进入配置文件目录
cd /home/admin/brokers/conf
# 编辑 broker.conf 文件
vi broker.conf
zookeeperServers=IP1:2181,IP2:2181,IP3:2181
configurationStoreServers=IP1:2181,IP2:2181,IP3:2181
advertisedAddress=IP1
#clusterName与前面zookeeper初始化的cluster一致
clusterName=pulsar-cluster-zk

注意

上面的advertisedAddress需要设置为对应机器的ip,而不是全设置为同一个

参数说明

zookeeperServers:指定zookeeper集群,用来将broker节点的元数据存放在zookeeper集群

configurationStoreServers:多集群部署时管理多个pulsar集群元数据的zookeeper集群地址,单集群部署时可以和zookeeperServers设置一样

advertisedAddress:指定当前节点的主机名或IP地址

clusterName:指定pulsar集群名称

7.2 启动 broker 节点

# 进入 brokers 目录
cd /home/admin/brokers
# 以后台进程启动 broker
bin/pulsar-daemon start broker

7.3 按照以上步骤,对另外两个 broker 节点做对应配置,并启动 broker 节点

查看集群中 brokers 节点信息,验证 broker 是否都启动成功

# 进入任一个 broker 目录
cd /home/admin/brokers
# 查看集群 brokers 节点情况
bin/pulsar-admin brokers list pulsar-cluster
 ? IP1:8080
 ? IP2:8080
 ? IP3:8080

显示如上,代表成功。至此,Pulsar集群部署就完成了。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 07:53:02  更:2021-07-28 07:55:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 19:37:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码