CentOS7環境下搭建Kafka

計劃使用三臺主機:11.12.112.206、11.12.112.207、11.12.112.208搭建Kafka集羣環境,
使用的zookeeper集羣爲:11.12.112.215:2181,11.12.112.216:2181,11.12.112.217:2181
並且zookeeper集羣已經啓動成功;
1.下載壓縮包:
kafka_2.11-0.8.2.2.tgz
並將之放在某個目錄下,例如:/home/jason/bigdata
2.解壓縮到當前目錄下:
tar -xvf kafka_2.11-0.8.2.2.tgz
3.進入Kafka的目錄
[root@clsserv206 bigdata]# cd kafka_2.11-0.8.2.2
[root@clsserv206 kafka_2.11-0.8.2.2]# ll
總用量 28
drwxr-xr-x. 3 root root 4096 9月 3 2015 bin
drwxr-xr-x. 2 root root 4096 9月 3 2015 config
drwxr-xr-x. 2 root root 4096 9月 3 2015 libs
-rw-r--r--. 1 root root 11358 9月 3 2015 LICENSE
-rw-r--r--. 1 root root 162 9月 3 2015 NOTICE
4.修改Kafka的配置文件
4.1.配置文件路徑
配置文件位於kafka_2.11-0.8.2.2/config目錄下,共有如下配置文件:
/home/jason/bigdata/kafka_2.11-0.8.2.2/config
[root@clsserv206 config]# ll
總用量 32
-rw-r--r--. 1 root root 1199 9月 3 2015 consumer.properties
-rw-r--r--. 1 root root 3846 9月 3 2015 log4j.properties
-rw-r--r--. 1 root root 2228 9月 3 2015 producer.properties
-rw-r--r--. 1 root root 5559 9月 3 2015 server.properties
-rw-r--r--. 1 root root 3325 9月 3 2015 test-log4j.properties
-rw-r--r--. 1 root root 993 9月 3 2015 tools-log4j.properties
-rw-r--r--. 1 root root 1023 9月 3 2015 zookeeper.properties
4.2. 修改配置文件server.properties
共修改以下配置:
#爲方便,直接將broker.id設置爲了ip的最後一段,當集羣中有多個Kafka時,他們的這個值必須不一樣
broker.id=206
#端口暫時不變
port=9092
#IP修改爲本機的IP
host.name=11.12.112.206
#可選配置項,將日誌輸出到指定的位置
log.dirs=/home/logs/kafka-logs
#必須配置自己的zookeeper
zookeeper.connect=11.12.112.215:2181,11.12.112.216:2181,11.12.112.217:2181
4.3. 爲加快配置可將這裏修改好的配置文件server.properties複製到其他幾個主機(207、208)
上的相應目錄/home/jason/bigdata/下,使用命令示例:
scp -r kafka_2.11-0.8.2.2 [email protected]:/home/jason/bigdata/
scp -r kafka_2.11-0.8.2.2 [email protected]:/home/jason/bigdata/
【注意】拷貝過去之後要記得仿照修改配置文件server.properties中最主要的
兩個配置項:broker.id和host.name,zookeeper的地址列表不變。
5.啓動Kafka
進入目錄:/home/jason/bigdata/kafka_2.11-0.8.2.2,執行命令:
sudo nohup ./bin/kafka-server-start.sh config/server.properties &
然後在其他集羣上按照同樣方式配置並啓動Kafka;
6.判斷Kafka是否啓動成功
通過在一臺server上創建producer,另外一臺創建consumer,從producer上發送信息,看consumer是否能接收到,以驗證集羣對否成功。
6.1創建topic
使用bin目錄下的kafka-topics.sh,
命令爲:
sudo ./bin/kafka-topics.sh -zookeeper 11.12.112.215:2181,11.12.112.216:2181,11.12.112.217:2181 -topic test-hello-jason -replication-factor 2 -partitions 5 -create
其中:-zookeeper之後要指定zookeeper集羣的地址列表,-topic之後指定topic的地址。
如下所示:
[root@clsserv206 kafka_2.11-0.8.2.2]# sudo ./bin/kafka-topics.sh -zookeeper 11.12.112.215:2181,11.12.112.216:2181,11.12.112.217:2181 -topic test-hello-jason -replication-factor 2 -partitions 5 -create
可看到輸出結果:
Created topic "test-hello-jason".
6.2 查看topic創建情況
使用命令:
sudo ./bin/kafka-topics.sh -zookeeper 11.12.112.215:2181,11.12.112.216:2181,11.12.112.217:2181 -list
命令執行之後,即可看到剛纔創建的topic:如下所示:
[root@clsserv206 kafka_2.11-0.8.2.2]# sudo ./bin/kafka-topics.sh -zookeeper 11.12.112.215:2181,11.12.112.216:2181,11.12.112.217:2181 -list
flume_log
idgen
new_log_1
new_ps_log_1
ng_log
nglog
ps_log1
ps_log_new - marked for deletion
ps_log_new_1
test-hello-jason
6.3 創建一個生產者
在11.12.112.206主機的Kafka上啓動一個producer,使用Kafka自帶的kafka-console-producer.sh來啓動,命令如下:
sudo ./bin/kafka-console-producer.sh -broker-list 11.12.112.206:9092,11.12.112.207:9092,11.12.112.208:9092 -topic test-hello-jason
【注意】這裏要通過-broker-list來指定Kafka集羣的地址列表。
執行結果如下:
[root@clsserv206 kafka_2.11-0.8.2.2]# sudo ./bin/kafka-console-producer.sh -broker-list 11.12.112.206:9092,11.12.112.207:9092,11.12.112.208:9092 -topic test-hello-jason
[2016-09-09 15:10:05,540] WARN Property topic is not valid (kafka.utils.VerifiableProperties)
6.4 創建一個消費者
在11.12.112.207主機的kafa上啓動一個消費者,使用Kafka的bin目錄下自帶的kafka-console-consumer.sh來啓動,命令如下:
sudo ./bin/kafka-console-consumer.sh -zookeeper 11.12.112.215:2181,11.12.112.216:2181,11.12.112.217:2181 - from-begining -topic test-hello-jason
【注意】這裏通過-zookeeper指定zookeeper的地址列表,而不是Kafka的地址列表,要通過-topic來指定topic;
執行結果如下:
[root@cluster207 kafka_2.11-0.8.2.2]# sudo ./bin/kafka-console-consumer.sh -zookeeper 11.12.112.215:2181,11.12.112.216:2181,11.12.112.217:2181 - from-begining -topic test-hello-jason
6.5 嘗試收發消息
在生產者那裏發送一條消息:
hello i am jason
如下:
[2016-09-09 15:10:05,540] WARN Property topic is not valid (kafka.utils.VerifiableProperties)
hello i am jason
在接收者那裏就會收到:
[root@cluster207 kafka_2.11-0.8.2.2]# sudo ./bin/kafka-console-consumer.sh -zookeeper 11.12.112.215:2181,11.12.112.216:2181,11.12.112.217:2181 - from-begining -topic test-hello-jason
hello i am jason
至此說明Kafka搭建成功
















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章