kafka安装和使用(2.12-3.5.1版本和2.10.0-0.10.0.0版本)
1. 网上下载安装包
kafka_2.12-3.5.1.tgz link
【低版本】:kafka_2.10-0.10.0.0.tgz link
apache-zookeeper-3.7.0-bin.tar.gz link
kafka需要和zookeeper配套使用,根据需要进行安装,此处以 “kafka_2.12-3.5.1” 为例。
2. 上传解压缩
- xftp 工具上传;
- tar 命令解压缩:
tar -zxvf kafka_2.12-3.5.1.tgz
tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz
3. 配置
3.1 zookeeper
- 进入解压后的zookeeper文件夹
cd /apache-zookeeper-3.7.0-bin
- 创建data、logs文件夹,文件夹位置可依据自己实际情况创建
mkdir data
mkdir logs
- 进入config配置文件
cd config
- 复制zookeeper配置文件
cp zoo_sample.cfg zoo.cfg
- 修改zoo.cfg文件,添加zookeeper的数据和日志路径(第2项创建的文件夹路径)
dataDir=/apache-zookeeper-3.7.0-bin/data
dataLogDir=/apache-zookeeper-3.7.0-bin/logs
3.2 kafka配置(低版本配置相同)
- 进入解压后的kafka文件夹
cd /kafka_2.12-3.5.1
- 创建logs文件夹,文件夹位置可依据自己实际情况创建
mkdir logs
- 进入config配置文件
cd config
- 修改server.properties文件,添加日志路径(第2项创建的文件夹路径)
# 192.168.xx.xxx 自己实际的地址,用ifconfig可以查看到
# 监听本机192.168.xx.xxx的网卡信息
listensers=PLAINTEXT://192.168.xx.xxx:9092
# 客户端通过192.168.xx.xxx网卡访问到当前节点信息
advertised.listeners=PLAINTEXT://192.168.xx.xxx:9092
# 日志存放路径
log.dirs=/kafka_2.12-3.5.1/logs
4. 启动
4.1 启动zookeeper
# 进入zookeeper安装目录下的bin目录
cd apache-zookeeper-3.7.0-bin/bin/
# 启动zookeeper服务
./zkServer.sh start
4.2 启动kafka(低版本相同)
# 进入kafka安装目录下的bin目录
cd /kafka_2.12-3.5.1/bin/
# 启动kafka服务
./kafka-server-start.sh ../config/server.properties
4.3 使用(低版本不同)
进入kafka安装目录的bin目录下运行一下命令:
命令 | 2.12-3.5.1 | 2.10.0-0.10.0.0 |
---|---|---|
创建topic | ./kafka-topics.sh --create --topic test –bootstrap-server 192.168.xx.xxx:9092 --partitions 1 --replication-factor 1 | ./kafka-topics.sh --create --topic test –zookeeper 192.168.xx.xxx:2181 --partitions 1 --replication-factor 1 |
查看topic列表 | ./kafka-topics.sh --list –bootstrap-server 192.168.xx.xxx:9092 | ./kafka-topics.sh --list –zookeeper 192.168.xx.xxx:2181 |
启动生产者(发送消息) | ./kafka-console-producer.sh –bootstrap-server 192.168.xx.xxx:9092 --topic test | ./kafka-console-producer.sh –broker-list 192.168.xx.xxx:9092 --topic test |
启动消费者(接收消息) | ./kafka-console-consumer.sh –bootstrap-server 192.168.xx.xxx:9092 --topic test --from-beginning | ./kafka-console-consumer.sh –bootstrap-server 192.168.xx.xxx:9092 --zookeeper 192.168.xx.xxx:2181 --topic test --from-beginning |
注意:低版本通信时控制台不会显示 “>” 符号。
5. zookeeper和kafka开机自启动
为zookeeper和kafka创建服务
5.1 zookeeper
- 进入init.d目录下
cd /etc/rc.d/init.d
- 创建zookeeper文件
vi zookeeper
- 编辑zookeeper文件
#! /bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
# 需修改为自己实际安装的Java路径
export JAVA_HOME=/jdk1.8.0_301/
# 需修改为自己实际安装的zookeeper路径
case $1 in
start) su root /apache-zookeeper-3.7.0-bin/bin/zkServer.sh start;;
stop) su root /apache-zookeeper-3.7.0-bin/bin/zkServer.sh stop;;
status) su root /apache-zookeeper-3.7.0-bin/zkServer.sh status;;
restart) su root /apache-zookeeper-3.7.0-bin/bin/zkServer.sh restart;;
*) echo "require start|stop|status|restart" ;;
esac
- 添加执行权限
chmod +x zookeeper
- 将zookeeper添加到开机自启动中
chkconfig --add zookeeper
- 查看开机自启动列表
chkconfig --list
5.2 kafka
- 进入init.d目录下
cd /etc/rc.d/init.d
- 创建kafka文件
vi kafka
- 编辑kafka文件
#! /bin/bash
#chkconfig:2345 30 80
#description:kafka
#processname:kafka
# 需修改为自己实际安装的Java路径
export JAVA_HOME=/jdk1.8.0_301
# 需修改为自己实际安装的kafka路径
KAFKA_HOME=/kafka_2.12-3.5.1
case $1 in
start) ${KAFKA_HOME}/bin/kafka-server-start.sh -daemon ${KAFKA_HOME}/config/server.properties;;
stop) ${KAFKA_HOME}/bin/kafka-server-stop.sh;;
status) jps;;
restart) ${KAFKA_HOME}/bin/kafka-server-stop.sh
${KAFKA_HOME}/bin/kafka-server-start.sh -daemon ${KAFKA_HOME}/config/server.properties;;
*) echo "require start|stop|status|restart";;
esac
- 添加执行权限
chmod +x kafka
- 将kafka添加到开机自启动中
chkconfig --add kafka
- 查看开机自启动列表
chkconfig --list
5.3 重启配置kafka的服务端,查看是否成功
查看方式:
- ps -ef | grep xx查看是进程是否启动
zookeeper : ps -ef | grep zoo
kafka: ps -ef | grep kafka
- systemctl status xx 查看进程状态是否开启
systemctl status zookeeper
systemctl status kafka
- offset explorer 工具连接是否成功
5.4 offset explorer 工具无法连接的问题
- 启动zookeeper、kafka后,在控制台可正常使用,但是采用offset explore无法连接,查看防火墙状态,并关闭防火墙。
- 防火墙关闭的情况下也无法连接,可延长工具连接的超时时间。