kafka简介
kafka官网:http://kafka.apache.org/
kafka下载页面:http://kafka.apache.org/downloads
kafka配置快速入门:http://kafka.apache.org/quickstart
新版本的kafka自带有zookeeper,本篇文章记录使用自带zookeeper搭建kafka集群。
环境准备
kafka版本:kafka_2.12-1.0.0
三台主机IP 10.211.55.29、10.211.55.30、10.211.55.31
配置工作
1、修改hosts
由于zookeeper是通过主机名通信的,我们需要需改hosts.
编辑vim /etc/hosts
1)保留前2行,其余的127.0.0.1注释掉
127.0.0.1 localhost
::1 localhost
2)添加三台机器的host绑定。
如:
10.211.55.29 kandy1
10.211.55.30 kandy2
10.211.55.31 kandy3
3)修改hostname:
编辑vim /etc/sysconfig/network
修改hostname为上述绑定中对应的名称
如:
HOSTNAME=kandy1
三台机器都需要操作,重启后生效reboot
2、kafka安装配置
下载后解压kafka
wget http://mirrors.shu.edu.cn/apache/kafka/1.0.0/kafka_2.12-1.0.0.tgz
tar xzvf kafka_2.11-0.9.0.0.tgz #解压
自定义目录
首先新建kafka的日志目录和zookeeper数据目录,因为这两项默认放在tmp目录,而tmp目录中内容会随重启而丢失,所以我们自定义两个目录:
新增/var/kafka-logs和/data/zk
目录(看个人心情修改)
修改 server.properties
进入kafka的config目录
vim server.properties
修改内容如下:
1、broker.id=1 #保证每个broker唯一,第一台可以不修改默认为0,后面两台需要修改,如改为2和3
2、num.partitions=3 #分区数量一般与broker保持一致
3、listeners=PLAINTEXT://10.211.55.29:9092 #修改为本机ip
4、zookeeper.connect=10.211.55.29:2181,10.211.55.30:2181,10.211.55.31:2181 #配置三台服务zookeeper连接地址
5、host.name=10.211.55.29 #新增host.name值,分别设为不同的值(3台机器根据自己的ip设置)
6、log.dirs=/var/kafka-logs/ #修改log.dirs目录为之前自定义的目录
修改 zookeeper.properties
vim zookeeper.properties
修改内容如下:
dataDir=/data/zk #修改为自定义的目录
#maxClientCnxns=0 #注释掉
#设置连接参数,添加如下配置
tickTime=2000
initLimit=10
syncLimit=5
#设置broker Id的服务地址
server.0=10.211.55.29:2888:3888
server.1=10.211.55.30:2888:3888
server.2=10.211.55.31:2888:3888
zookeeper数据目录添加id配置
在各台服务的zookeeper数据目录添加myid文件,写入服务broker.id属性值,如这里的目录是/data/zk
第一台broker.id为1的服务到该目录下执行:
echo 1 > myid
其他两台机器分别新增.
3、启动kafka
kafka启动时先启动zookeeper,再启动kafka;关闭时相反,先关闭kafka,再关闭zookeeper
启动zookeeper:
bin/zookeeper-server-start.sh config/zookeeper.properties &
启动kafka:
bin/kafka-server-start.sh config/server.properties &
创建启动脚本(可选)
进入bin目录
新增文件
vim start_zk.sh
内容如下:
#!/bin/bash
dir=`pwd`
echo $dir
start() {
cd $dir
nohup ./zookeeper-server-start.sh ../config/zookeeper.properties &
echo -e '\r'
}
start >> $dir/../logs/start_zk.log 2>> $dir/../logs/start_zk.log
保存赋权
chmod +x start_zk.sh
新增文件
vim start_kfk.sh
内容:
[root@ycb-dev6 bin]# vim start_kfk.sh
#!/bin/bash
dir=`pwd`
echo $dir
start() {
cd $dir
nohup ./kafka-server-start.sh ../config/server.properties &
echo -e '\r'
}
start >> $dir/../logs/start_kfk.log 2>> $dir/../logs/start_kfk.log
保存赋权
chmod +x start_kfk.sh
在kafka的bin同级目录下新建logs文件夹
上述操作完成后即配置完毕。
kafka测试:
分别启动三台机器的zookeeper:
bin目录下执行
./start_zk.sh
三台机器的zookeeper都启动后,再做下面的操作:
分别启动三台机器的kafka
bin目录下执行
./start_kfk.sh
在某台机器创建topic kandy:
bin/kafka-topics.sh -create --zookeeper 10.211.55.29:2181,10.211.55.30:2181,10.211.55.31:2181 -replication-factor 3 --partitions 3 --topic kandy
展示topic,确认topic创建成功
bin/kafka-topics.sh --list --zookeeper 10.211.55.29:2181
创建生产者
bin/kafka-console-producer.sh --broker-list 10.211.55.29:9092,10.211.55.30:9092,10.211.55.31:9092 --topic kandy
在另外两台机器创建消费者
bin/kafka-console-consumer.sh --zookeeper 10.211.55.29:2181,10.211.55.30:2181,10.211.55.31:2181 --topic kandy --from-beginning
生产者机器截图
生产者
消费者机器截图
消费者
如上,在生产者中输入字符并回车,消费者中可接收到消息即配置成功。
网友评论