本文详细说明kafka集群安装和命令行的基本使用
文章目录
环境
- zk集群:192.168.31.201、192.168.31.202、192.168.31.203
-
Centos7 三台
-
对齐时钟
对齐方式:Linux同步系统时间
- kafka版本:kafka_2.11-1.1.0.tgz
安装
1,传包与解压
去kafka官网下载即可[官网下载](http://kafka.apache.org/downloads.html)
本案例使用kafka_2.11-1.1.0.tgz
上传到服务器。
解压与重命名(包放在了/usr/local/src下)
tar -zvxf kafka_2.11-1.1.0.tgz
mv /usr/local/src/kafka_2.11-1.1.0 /usr/local/kafka
2,创建log文件夹
mkdir /usr/local/kafka/kafkalogs
3,配置kafka
注这里更多配置请前往官方文档查看
cd /usr/local/kafka/config
vi server.properties
配置项如下
broker.id=0 //当前机器在集群中的唯一标识
port=9092 //kafka对外提供服务的tcp端口
host.name=192.168.31.201 //主机IP地址
log.dirs=/usr/local/kafka/kafkalogs //log存放目录
message.max.byte=5048576 //kafka一条消息容纳的消息最大为多少
default.replication.factor=2 //每个分区默认副本数量
replica.fetch.max.bytes=5048576
zookeeper.connect=192.168.31.201:2181, 192.168.31.202:2181, 192.)168.31.203:2181
4,分发配置好的kafka文件
注:mini2和mini3分别是
192.168.31.202,192.168.31.203
的主机别名,我已加入/etc/hosts
文件中,故可这样别名写法
scp -r /usr/local/kafka root@mini2:/usr/local/kafka
scp -r /usr/local/kafka root@mini3:/usr/local/kafka
5,修改另两台文件中的broker.id值和host.name值
把server.properties文件中的broker.id值和host.name做修改,不能三台机器一样的值
6,启动kafka集群
进入KAFKA_HOME(/usr/local/kafka),后台启动
bin/kafka-server-start.sh -daemon config/server.properties
测试集群
三台机器都使用jps命令检查
[root@mini2 kafka]# jps
1146 QuorumPeerMain
1851 Jps
1791 Kafka
命令行验证
1 创建topic
bin/kafka-topics.sh --create --zookeeper 192.168.31.201:2181 --replication-factor 1 --partitions 1 --topic test
2 查看topic
bin/kafka-topics.sh --list --zookeeper 192.168.31.201:2181
3 开启发送者(生产者)并发送消息
bin/kafka-console-producer.sh --broker-list 192.168.31.201:9092 --topic test
4 开启消费者并接收消息
bin/kafka-console-consumer.sh --zookeeper 192.168.31.201:2181 --topic test --from-beginning
[附录]操作完整流程
进入到/usr/local/kafka
[root@mym kafka]# ls
bin config kafkalogs libs LICENSE NOTICE site-docs
[root@mym kafka]# bin/kafka-server-start.sh -daemon config/server.properties
[root@mym kafka]# jps
4765 Kafka
4835 Jps
4444 QuorumPeerMain
[root@mym kafka]# bin/kafka-topics.sh --create --zookeeper 192.168.31.201:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".
[root@mym kafka]# bin/kafka-topics.sh --list --zookeeper 192.168.31.201:2181
test
[root@mym kafka]# bin/kafka-console-producer.sh --broker-list 192.168.31.201:9092 --topic test
>hello
>world
>i an^Hm e producer
>heihei
>^C[root@mym kafka]#
[root@mym kafka]# bin/kafka-console-consumer.sh --zookeeper 192.168.31.201:2181 --topic test --from-beginning
Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].
hello
world
i am e producer
heihei
^CProcessed a total of 4 messages
[root@mym kafka]#