本文主要介紹 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/