Zookeeper 的安裝與配置
Zookeeper下載
Zookeeper要求Java運行環境,並且需要jdk版本1.6以上
JDK下載地址
下載包:jdk-8u162-linux-x64.rpm
安裝JDK:yum localinstall jdk-8u162-linux-x64.rpm
Zookeeper下載地址
Zookeeper安裝
解壓:tar -zxvf zookeeper-3.4.11.tar.gz -C /usr/local && cd /usr/local/
重命名:mv zookeeper-3.4.11/ zookeeper
修改環境變量 vim /etc/profile
#ZOOKEEPER配置
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
刷新配置:source /etc/profile
Zookeeper搭建方式
Zookeeper安裝方式有三種,單機模式和集群模式以及偽集群模式
1.單機模式:Zookeeper只運行在一台服務器上,適合測試環境
2.偽集群模式:就是在一台物理機上運行多個Zookeeper 實例 (不推薦)
3.集群模式:Zookeeper運行於一個集群上,適合生產環境,這個計算機集群被稱為一個“集合體”(ensemble)
Zookeeper通過復制來實現高可用性,只要集合體中半數以上的機器處於可用狀態,它就能夠保證服務繼續,至少3台
1、Zookeeper的單機模式搭建
cd /usr/local/zookeeper/conf
mv zoo_sample.cfg zoo.cfg
修改配置文件:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/datalog
clientPort=2181
2、Zookeeper的集群模式搭建
創建myid
在dataDir(/data/zookeeper/data)目錄創建myid文件
Server0機器的內容為:0
Server1機器的內容為:1
Server2機器的內容為:2
echo "0" > /data/zookeeper/data/myid
echo "1" > /data/zookeeper/data/myid
echo "2" > /data/zookeeper/data/myid
# 編寫配置文件
cd /usr/local/zookeeper/conf
mv zoo_sample.cfg zoo.cfg
修改配置文件(三台服務器配置相同):
tickTime=2000 # 服務器之間或客戶端與服務器之間的單次心跳檢測時間間隔,單位為毫秒
initLimit=10 # 集群中leader服務器與follower服務器第一次連接最多次數
syncLimit=5 # leader與follower之間發送和應答時間,如果該follower在設置的時間內不能與leader進行通信,那么此follower將被視為不可用
dataDir=/data/zookeeper/data #自定義的zookeeper保存數據的目錄
dataLogDir=/data/zookeeper/datalog
clientPort=2181 # 客戶端連接Zookeeper服務器的端口,Zookeeper會監聽這個端口,接受客戶端的訪問請求
server.0=10.10.40.200:2888:3888 # 服務器編號=服務器IP:LF數據同步端口:LF選舉端口
server.1=10.10.40.201:2888:3888
server.2=10.10.40.202:2888:3888
maxClientCnxns : 限制連接到zookeeper服務器客戶端的數量 (可選參數)
Zookeeper啟動
啟動ZooKeeper的Server:zkServer.sh start
關閉ZooKeeper的Server:zkServer.sh stop
查看ZooKeeper的Server狀態:zkServer.sh status
操作Zookeeper
執行zkCli.sh 進入zookeeper客戶端
kafka單機安裝
# 下載
wget http://mirrors.hust.edu.cn/apache/kafka/2.1.0/kafka_2.11-2.1.0.tgz
tar -xf kafka_2.11-2.1.0.tgz
mv kafka_2.11-2.1.0 /usr/local/kafka
# 修改配置文件
vim /usr/local/kafka/config/server.properties
# node1上修改配置文件
broker.id=0 # 指定節點的ID號,不同節點ID必須不同
listeners=PLAINTEXT://10.10.40.200:9092 # 監聽的ip和端口
log.dirs=/tmp/kafka-logs
log.retention.hours=24 # 日志保留的時間單位為小時
zookeeper.connect=10.10.40.200:2181,10.10.40.201:2181,10.10.40.202:2181 # zookeeper集群IP端口
# node2上修改配置文件
broker.id=1 # 指定節點的ID號,不同節點ID必須不同
listeners=PLAINTEXT://10.10.40.201:9092 # 監聽的ip和端口
log.dirs=/tmp/kafka-logs
log.retention.hours=24 # 日志保留的時間單位為小時
zookeeper.connect=10.10.40.200:2181,10.10.40.201:2181,10.10.40.202:2181 # zookeeper集群IP端口
# node3上修改配置文件
broker.id=2 # 指定節點的ID號,不同節點ID必須不同
listeners=PLAINTEXT://10.10.40.202:9092 # 監聽的ip和端口
log.dirs=/tmp/kafka-logs
log.retention.hours=24 # 日志保留的時間單位為小時
zookeeper.connect=10.10.40.200:2181,10.10.40.201:2181,10.10.40.202:2181 # zookeeper集群IP端口
# 啟動
/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
# 查看啟動日志
tail -f /usr/local/kafka/logs/server.log
kafka 操作命令
## 單機版
# 創建Topic
/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --partitions 1 --replication-factor 1 --topic syslog
# 查看Topic
/usr/local/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181
# 獲取Topic信息
/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic syslog
# 刪除Topic
/usr/local/kafka/bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic syslog
## 集群版本
# 創建Topic
/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper 10.10.40.200:2181,10.10.40.201:2181,10.10.40.202:2181 --partitions 3 --replication-factor 3 --topic syslog
# 查看Topic
/usr/local/kafka/bin/kafka-topics.sh --list --zookeeper 10.10.40.200:2181,10.10.40.201:2181,10.10.40.202:2181
# 獲取Topic信息
/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper 10.10.40.200:2181,10.10.40.201:2181,10.10.40.202:2181 --topic syslog
# 刪除Topic
/usr/local/kafka/bin/kafka-topics.sh --delete --zookeeper 10.10.40.200:2181,10.10.40.201:2181,10.10.40.202:2181 --topic syslog