安装环境信息
kafka版本 | 2.3.0 |
---|---|
机器数 | 3 |
kafka里面自带了zookeeper,安装时修改默认的配置文件即可。
1.下载地址
kafka2.3.0下载地址
我这里下载的是kafka_2.12-2.3.0。2.12是scala的版本号,2.3.0是kafka的版本号。
2.安装
安装之前,建议先把机器的防火墙给关了,不然谁知道会出什么幺蛾子。我就遇到过一个很神奇的,链接地址
在/home/atom目录下执行
mkdir kafka
tar -zxvf kafka_2.12-2.3.0.tgz -C kafka/
cd kafka/kafka_2.12-2.3.0/
mkdir zookeeper
mkdir -p log/zookeeper
mkdir -p log/kafka
2.1 配置zookeeper
修改3台机器上的 ${KAFKA_HOME}/conf/zookeeper.properties
我这里的KAFKA_HOME是/home/atom/kafka/kafka_2.12-2.3.0/
#zookeeper数据目录
dataDir=/home/atom/kafka/kafka_2.12-2.3.0/zookeeper
#zookeeper日志目录
dataLogDir=/home/atom/kafka/kafka_2.12-2.3.0/log/zookeeper
# 端口
clientPort=2181
#注释掉
#maxClientCnxns=0
#为zk的基本时间单元,毫秒
tickTime=2000
#Leader-Follower初始通信时限 tickTime*10
initLimit=10
#Leader-Follower同步通信时限 tickTime*5
syncLimit=5
#设置broker Id的服务地址
server.0=192.168.43.98:2888:3888
server.1=192.168.43.99:2888:3888
server.2=192.168.43.100:2888:3888
注:kafka、zookeeper日志目录和数据目录,这两项默认放在tmp目录,而tmp目录中内容会随重启而丢失。
2.2 配置kafka
为3台机修改 ${KAFKA_HOME}/config/server.properties文件。注意3台机器上broker.id是不同的。我这里机器1、2、3的id分别设为0、1、2.
broker.id=1
listeners=PLAINTEXT://:9092
# 三台机器的zookeeper连接地址
zookeeper.connect=server1:2181,server2:2181,server3:2181
# kafka 运行日志存放路径
log.dirs=/home/atom/kafka/kafka_2.12-2.3.0/log/kafka
# topic 在当前broker上的分片个数,与broker数保持一致
num.partitions=3
注意:listeners之外还有个参数叫advertised.listeners。listeners是对内的,advertised.listeners是对外的,如果不配置advertised.listeners,那么advertised.listeners的值就取listeners。这种情况下,如果listeners配的是形如:listeners=PLAINTEXT://127.0.0.1:9092的话,外网会连接不到kafka。
在每台机的${KAFKA_HOME}/zookeeper目录下,创建myid文件。文件的内容分别是broker.id的值。
如我这里,在第一台机上:
echo "0" > /home/atom/kafka/kafka_2.12-2.3.0/zookeeper/myid
其它两台机类似,分别替换为1和2.
3.kafka的使用
3.1 启动kafka
启动kafka要先启动zookeeper。
nohup bin/zookeeper-server-start.sh config/zookeeper.properties >log/zookeeper/zookeeper.log 2>1 &
可以用以下命令查看zookeeper是否都启动完成。
ps -elf | grep kafka
启动zookeeper时,日志中可能会因为不同的机器启动zookeeper的速度不一样,会报连接错误,这可以忽略,因为都成功启动后就不报了。
接着启动kafka
nohup bin/kafka-server-start.sh config/server.properties >log/kafka/kafka.log 2>1 &
3.2 创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --config max.message.bytes=12800000 --config flush.messages=1 --replication-factor 1 --partitions 3 --topic atom
查看创建的topic
bin/kafka-topics.sh --list --zookeeper localhost:2181
kafka自带的消费工具
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic atom --from-beginning