BookKeeper 介绍(2)--安装
本文主要介绍 Bookkeeper 的安装,文中所使用到的软件版本:Java 1.8.0_321、BookKeeper 4.16.5、CentOS 7.9.2009。
1、单机安装
官网(https://bookkeeper.apache.org/releases)下载安装包并解压:
tar zxvf bookkeeper-server-4.16.5-bin.tar.gz
在单台机器上允许多个 bookies:
bin/bookkeeper localbookie 10
2、集群安装
假设在 10.49.196.30、10.49.196.31、10.49.196.32 上部署 Bookkeeper。
2.1、Zookeeper 安装
可以使用独立的 Zookeeper,安装方式可参考:Zookeeper入门实战(1)-概念、安装及命令行;这里使用 Bookkeep 自带的 Zookeeper,修改配置启动即可。
A、修改 conf/zookeeper.conf
#注释掉如下行 #dynamicConfigFile=conf/zookeeper.conf.dynamic #新增如下内容 server.1=10.49.196.30:2888:3888 server.2=10.49.196.31:2888:3888 server.3=10.49.196.32:2888:3888 #关闭 AdminServer admin.enableServer=false
B、启动 Zookeeper
在三台机器上运行:
bin/bookkeeper-daemon.sh start zookeeper
2.2、元数据设置
A、修改 conf/bk_server.conf
该文件是 bookie 的配置文件,主要需要修改 metadataServiceUri 参数,其他可根据需要修改。
metadataServiceUri=zk+hierarchical://10.49.196.30:2181;10.49.196.31:2181;10.49.196.32:2181/ledgers
B、元数据设置
在任一机器上运行(只需运行一次):
bookkeeper-server/bin/bookkeeper shell metaformat
2.3、启动 bookies
bin/bookkeeper-daemon.sh start bookie
2.4、关闭集群
bin/bookkeeper-daemon.sh stop bookie #关闭 bookie bin/bookkeeper-daemon.sh stop zookeeper #关闭 zookeeper
3、bookkeepeer 命令
bookkeeper 命令可以用来在前台启动服务(bookkeeper-daemon.sh 是在后台启动服务)、在单台机器运行多个 bookies、运行管理命令等。查看用法:
bin/bookkeeper help
输出:
Usage: bookkeeper <command> where command is one of: [service commands] bookie Run a bookie server autorecovery Run AutoRecovery service zookeeper Run zookeeper server [development commands] localbookie <n> Run a test ensemble of <n> bookies locally standalone Run a standalone cluster (with all service components) locally [tooling commands] upgrade Upgrade bookie filesystem shell Run shell for admin commands [other commands] help This help message
bin/bookkeeper shell 运行管理命令,查看使用方法:
bin/bookkeeper shell help
如查看 bookie 的相关信息:
bin/bookkeeper shell bookieinfo
4、bookkeepeer 配置
可以在 conf/bk_server.conf 配置文件中修改配置,以调整 BookKeeper 的性能和行为。下面介绍一些常用参数配置。
4.1、Server parameters
参数 | 说明 | 默认值 |
bookiePort | bookie 端口 | 3181 |
listeningInterface | bookie 监听的网卡,不设置将监听所有网卡 | |
advertisedAddress | 设置 bookie IP 地址或主机名 | |
useHostNameAsBookieID | bookie 注册到 zookeeper 时是否使用主机名;如为 false,注册时将使用 IP 地址 | false |
4.2、Http server settings
参数 | 说明 | 默认值 |
httpServerEnabled | 是否启用 HTTP 服务 | false |
httpServerPort | HTTP 服务端口 | 8080 |
httpServerHost | HTTP 服务地址 | 0.0.0.0 |
4.3、Journal settings
参数 | 说明 | 默认值 |
journalDirectories | Bookkeeper 预写日志目录;可以设置多个,用英文逗号分隔 | /tmp/bk-journal |
journalDirectory | 自 4.5.0 过期,使用 journalDirectories 代替 | /tmp/bk-txn |
journalMaxSizeMB | journal 日志文件的最大大小,单位为 MB | 2048 |
journalMaxBackups | journal 文件的最大个数 | 5 |
journalQueueSize | journal 队列大小 | 10000 |
4.4、Ledger storage settings
参数 | 说明 | 默认值 |
ledgerDirectories | ledger 数据保存目录 | /tmp/bk-data |
indexDirectories | ledger 索引文件保存目录,如不设置使用 ledgerDirectories 参数的值 | /tmp/bk-data |
4.5、Default Entry log settings
参数 | 说明 | 默认值 |
logSizeLimit | entry 日志文件的最大大小,单位为字节 | 2147483648 |
readBufferSizeBytes | 读缓存通道大小,单位为字节 | 512 |
writeBufferSizeBytes | 写缓存通道大小,单位为字节 | 65536 |
4.6、Metadata Service Settings
参数 | 说明 | 默认值 |
metadataServiceUri | 元数据服务的 zookeeper 地址 | zk+hierarchical://localhost:2181/ledgers |
4.7、Statistics
参数 | 说明 | 默认值 |
enableStatistics | 是否启用统计功能 | false |
statsProviderClass |
提供统计信息的类 |
org.apache.bookkeeper.stats.prometheus.PrometheusMetricsProvider |
limitStatsLogging |
是否限制统计功能打印日志 |
false |
4.8、Prometheus Metrics Provider Settings
参数 | 说明 | 默认值 |
prometheusStatsHttpAddress | Prometheus 统计程序 HTTP 地址 | 0.0.0.0 |
prometheusStatsHttpPort | Prometheus 统计程序 HTTP 端口 | 8000 |
prometheusStatsLatencyRolloverSeconds | 获取统计信息的时间间隔,单位为秒 | 60 |
参考:
https://bookkeeper.apache.org/docs/overview/