1. 程式人生 > >Kafka叢集配置及UI監控

Kafka叢集配置及UI監控

  • 配置:5臺機器 系統版本CentOS release 6.5
  • host1,host2,host3搭建zookeeper叢集
  • host1,host2,host3,host4,host5搭建kafka叢集
  • zookeeper使用kafka中自帶的

一、環境配置

kafka下載,解壓,設定軟連結
目錄 /usr/lib/

wget http://apache.fayea.com/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz
tar -zxf kafka_2.11-0.10.0.0.tgz
ln -s kafka_2.11-0.10.0.0 kafka

1.配置zookeeper

目錄 /usr/lib/kafka

vim config/zookeeper.properties

修改

dataDir=/data/zookeeper/       #zookeeper元資訊路徑
#maxClientCnxns=0

新增

tickTime=2000
initLimit=5
syncLimit=2
server.1=host1:2888:3888
server.2=host2:2888:3888
server.3=host3:2888:3888

在dataDir目錄中新增標示

echo 1 >/data/zookeeper/myid           //1對應server.1

2.配置kafka

vim config/server.properties 
broker.id=0(每臺不一樣)
port=9092
host.name=host1
advertised.host.name=host1
log.dirs=/data/kafka-logs
num.partitions=5
log.retention.hours=168     #topic預設儲存一週

3.修改consumer 和 producer

vim  /consumer.properties
zookeeper.connect=host1:2181,host2:2181,host3:2181
vim /producer.properties
bootstrap.servers=host1:9092,host2:9092,host3:9092,host4:9092,host5:9092

先建立好所需路徑

mkdir /data/zookeeper
midir /data/kafka-logs

接下來將host1中配置好的kafka複製到其它機器中,需要配置scp

二.配置機器scp

ssh-keygen -t rsa

三次回車
將生成的/root/.ssh/id_rsa.pub中的內容,貼上到其他機器的/root/.ssh/authorized_keys中
*注意複製貼上時檢查中間是否藏了回車
其他機器 vim /etc/hosts.allow 新增

sshd :host1 :allow

之後在host1中,可以進行scp檔案傳輸

scp -r kafka_2.11-0.10.0.0 host2:/usr/lib/

登入其他機器,修改server.properties

broker.id=1
host.name=host2
advertised.host.name=host3

建立myid

echo 2 >/data/zookeeper/myid 

三.啟動

zookeeper

目錄:/usr/lib/kafka

bin/zookeeper-server-start.sh config/zookeeper.properties &

分別在三臺機器上啟動,啟動前兩臺時因連不上其他機器,可能報錯,等三臺機器都啟動zookeeper後錯誤消失

kafka

目錄:/usr/lib/kafka

JMX_PORT=9991 bin/kafka-server-start.sh config/server.properties & 
JMX_PORT=9992 bin/kafka-server-start.sh config/server.properties & 
JMX_PORT=9993 bin/kafka-server-start.sh config/server.properties & 
JMX_PORT=9994 bin/kafka-server-start.sh config/server.properties & 
JMX_PORT=9995 bin/kafka-server-start.sh config/server.properties & 

分別在五臺機器上啟動,命令前帶引數JMX_PORT,五個不可重複

四、UI環境搭建:

1.Kafka Manager

*下載,編譯及執行 需要java8或以上

git clone https://github.com/yahoo/kafka-manager
cd kafka-manager 
./sbt clean dist
cd  kafka-manager/target/universal
unzip kafka-manager-1.3.0.8.zip 
cd kafka-manager-1.3.0.8
bin/kafka-manager

訪問:host1:9000

2.Kafka Monitor

下載:

執行:

java -Xms1024M -Xmx1024M -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m -cp KafkaOffsetMonitor-assembly-0.2.1.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk host1:2181,host2:2181,host3:2181 --port 8086 --refresh 10.seconds --retain 7.days > mobile-logs/stdout.log 2> mobile-logs/stderr.log &

訪問:host1:8086

五、測試:

目錄:/usr/lib/kafka

建立Topic

在Kafka Manager中,點選Topic->create
設定Topic名稱,分割槽數,備份數,這裡設為2備份,5分割槽

生產者

任意一臺機器上

bin/kafka-console-producer.sh --broker-list host1:9092,host2:9092,host3:9092,host4:9092,host5:9092 --topic test

消費者

任意一臺機器上

bin/kafka-console-consumer.sh --zookeeper host1:2181 --from-beginning --topic test