一、Zookeeper
ZooKeeper是一個分散式的,開放原始碼的分散式應用程式協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要元件。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務、分散式同步、組服務等。
ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者。
zookeeper叢集以奇數做叢集;
zookeeper1 10.207.101.100 21811
zookeeper2 10.207.101.100 21812
zookeeper3 10.207.101.100 21813
1、下載地址:
http://mirrors.hust.edu.cn/apache/zookeeper/
2、安裝配置 ;
# tar -xf zookeeper-3.4.9.tar.gz
# mv zookeeper-3.4.9/ zookeeper
zookeeper/conf目錄,輸入命令 cp -rp zoo_sample.cfg zoo.cfg
zookeeper目錄,新建子目錄data和logs,
# mkdir -p /opt/{data/{21811,21812,21813},logs{21811,21812,21813}}
3、zoo.conf 配置如下:
(單點配置 其餘節點配置更改port data logs不同)
# vim zoo.cfg
tickTime=2000
# Client – server 通訊心跳時間
initLimit=10
# leader-follower 初始連結時能容忍的最多心跳數;
syncLimit=5
# follower 伺服器和人leade 伺服器 之間請求和應答之間能容忍的最多心跳數;
dataDir=/opt/server/zookeeper/data/21811
dataLogDir=/opt/server/zookeeper/logs/212812
clientPort=21811
server.1=zoo1:28881:38881
server.2=zoo2:28882:38882
server.3=zoo3:28883:38883
4、啟動:zookeeper (配置目錄)
bin/zkServer.sh start
5、連結測試
bin/zkCli.sh -server 127.0.0.1:21811
bin/zkCli.sh -server 127.0.0.1:21812
bin/zkCli.sh -server 127.0.0.1:21813
二、kafka
Kafka是分散式釋出-訂閱訊息系統。它最初由LinkedIn公司開發,之後成為Apache專案的一部分。 Kafka是一個分散式的,可劃分的,冗餘備份的永續性的日誌服務。它主要用於處理活躍的流式資料。通過叢集來提供實時的消費;
kafka1 10.207.101.100 90921
Kafka2 10.207.101.100 90921
kafka3 10.207.101.100 90921
prot:90921/90922/90923
1、下載安裝:
https://www.apache.org/dyn/closer.cgi?path=/kafka/0.10.1.1/kafka_2.11-0.10.1.1.tgz
# mkdir -p /opt/kafka/logs{90921,90922,90923}
2、配置檔案(單點配置 其餘節點配置更改port data logs不同)
vim config/server.properties
broker.id=1
# broker 標識
listeners=PLAINTEXT://10.207.101.100:90921
# listeners一定要配置成為IP地址;如果配置為localhost或伺服器的hostname,在使用java傳送資料時就會丟擲異 ;也可以設定hostname
log.dirs= /opt/kafka/logs/90921
# kafka 資料存放目錄
zookeeper.connect=10.207.101.100:21811,10.207.101.100:21812,10.207.101.100:21813
# zookeeper 連結串
3、Kafka環境變數
cat /etc/profile
export KAFKA_HEAP_OPTS=”-Xms30g -Xmx30g -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -XX:InitiatingHeapOccupancyPercent=45″
(設定根據硬體資源和系統資源本機測試環境都是64核256G8TSSD)
4、啟動
nohup bin/kafka-start.sh config/server.properties >/dev/null 2>&1 &
三、 kafak 叢集監控
1、kafka-monitor
監測Kafka叢集狀態
Topic、Consumer Group列表
圖形化展示topic和consumer之間的關係
圖形化展示consumer的Offset、Lag等資訊
2、kafka offset monitor
KafkaOffsetMonitor:程式一個jar包的形式執行,部署較為方便。只有監控功能,使用起來也較為安全。
3、本文示例使用kafka offset monitor 進行監控
https://github.com/quantifind/KafkaOffsetMonitor
下載解壓縮執行:
執行格式:
java -cp KafkaOffsetMonitor-assembly-0.2.1.jar
com.quantifind.kafka.offsetapp.OffsetGetterWeb
–offsetStorage kafka
–zk zk-server1,zk-server2
–port 8899
–refresh 10.seconds
–retain 2.days
注:
offsetStorage目前只支援kaka,zk按照host1:port1,host2:port2…的格式去寫即可,port為開啟web介面的埠號可自定義,refresh為重新整理時間,retain為資料保留時間(單位seconds, minutes, hours, days)。
4、設定shell啟動示例:
# cat start.sh
# !/bin/sh
echo “KafkaOffsetMonitor starting”
nohup java -cp KafkaOffsetMonitor-assembly-0.3.0.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb –offsetStorage kafka –zk zoo1:21811,zoo2:21812,zoo3:21813 –port 8090 –refresh 10.seconds –retain 1.days > /dev/null 2>&1 &
5、kafka-monitor測試訪問:
http://10.207.101.100:8899/#/clusterviz