Kafka单机安装
- 安装JDK1.8+,配置JAVA_HOME (CentOS 6.10 64bit)
- 配置主机名和IP映射
- 关闭防火墙&防火墙开机自启动
- 安装&启动Zookeeper
- 安装&启动|关闭Kafka
1.下载zookeeper安装资源:
https://zookeeper.apache.org/releases.html
2.下载kafaka安装资源:
http://kafka.apache.org/downloads
3.上传资源到虚拟机:
4.安装jdk:rpm -ivh jdk-8u191-linux-x64.rpm
5.查看系统中安装的jdk:rpm -qa|grep jdk
6.配置java环境变量:

7.设置主机名,并重启:vi /etc/hostname
8.配置主机名和IP映射:vi /etc/hosts

9.测试是否设置成功:ping CentOS
10.禁用防火墙:
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
11.解压zookeeper安装包:tar -zxf zookeeper-3.4.6.tar.gz
12.设置zookeeper的配置文件,修改启动数据目录:

13.启动zookeeper并查看状态:
./bin/zkServer.sh start zoo.cfg
./bin/zkServer.sh status zoo.cfg

14.解压kafka安装包:tar -zxf kafka_2.11-2.2.0.tgz
15.配置kafka的server.properties文件:
#主机数
broker.id=0
#监听主机端口:
listeners = PLAINTEXT://CentOS:9092
#分区数
num.partitions=1
#日志保存时间
log.retention.hours=168
#连接zookeeper主机地址:
zookeeper.connect=CentOS:2181
16.启动kafka:./bin/kafka-server-start.sh -daemon config/server.properties
- -daemon 后台运行

17.关闭kafka:
./bin/kafka-server-stop.sh
18.创建一个topic:
./bin/kafka-topics.sh --bootstrap-server CentOS:9092 --create --topic topic01 --partitions 3 --replication-factor 1
- –bootstrap-server CentOS:9092:连接zookeeper
- –create:创建
- –topic topic01:topic名为topic01
- –partitions 3:指定分区
- –replication-factor 1:指定副本因子为1(不能大于broker数)
19.创建消费者:
./bin/kafka-console-consumer.sh --bootstrap-server CentOS:9092 --topic topic01 --group group1
- –topic topic01:指定消费的topic
- –group group1:指定消费组
20.创建生产者:
./bin/kafka-console-producer.sh --broker-list CentOS:9092 --topic topic01
21.创建三个消费者为同一个组,轮询消费三个分区的消息:
Kafka集群搭建
- 安装JDK,配置JAVA_HOME (CentOS 6.10 64bit)
- 配置主机名和IP映射
- 关闭防火墙&防火墙开机自启动
- 同步时钟 ntpdate cn.pool.ntp.org | ntp[1-7].aliyun.com
- 安装&启动Zookeeper
- 安装&启动|关闭Kafka
1.克隆虚拟机,配置网卡:
vi /etc/hostname:修改主机名

vi /etc/resolv.conf:nat 转发模式的DNS和网关一致

vi /etc/sysconfig/network

ifconfig ens33:查看真实mac

vi /etc/sysconfig/network-scripts/ifcfg-ens33:修改mac为真实mac

-vi /etc/sysconfig/network-scripts/ifcfg-lo:
- systemctl restart network.service
- systemctl status network.service

由于集群的虚拟机是从单机克隆的,环境安装的操作请参考单机搭建。
2.配置主机名和ip的关系:vi /etc/hosts

3.将主机与ip配置文件hosts复制到B、C主机:scp /etc/hosts CentOSC:/etc/
4.配置时钟一致:
yum install ntp -y:安装时钟服务

ntpdate ntp1.aliyun.com:设置阿里云时钟同步服务器

clock -w:同步时钟

5.修改zookeeper配置配置:vi conf/zoo.cfg
需要创建zookeeper数据存储目录,因为单机克隆,所以这里不创建。
6.同步配置到B、C服务器:
scp /usr/kafka/zookeeper-3.4.6/conf/zoo.cfg CentOSC:/usr/kafka/zookeeper-3.4.6/conf/

7.设置zookeeper服务的id,与zoo.cfg中对应:
echo 2 > /root/zkdata/myid
8.启动zookeeper服务:/usr/kafka/zookeeper-3.4.6/bin/zkServer.sh start zoo.cfg
9.修改kafka的配置文件:vi server.properties
broker.id=1:不同服务器之间唯一
listeners = PLAINTEXT://CentOSA:9092:服务器自己的主机名
log.dirs=/usr/kafka-logs
zookeeper.connect=CentOSA:2181,CentOSB:2181,CentOSC:2181
10.启动kafka:./bin/kafka-server-start.sh -daemon config/server.properties
11.创建一个topic:
./bin/kafka-topics.sh --bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092 --create --topic topic02 --partitions 3 --replication-factor 2
名称:topic02 ,分区数:3,副本因子:2
12.查看日志目录:ls /usr/kafka-logs/
13.查看topic02的详细信息:
./bin/kafka-topics.sh --bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092 --describe --topic topic02
14.修改kafka分区数:
./bin/kafka-topics.sh --bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092 --alter --topic topic02 --partitions 4

修改分区数只能从低到高,不能从高到底。
15.删除topic:
./bin/kafka-topics.sh --bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092 --delete --topic topic02

16.查看topic列表:
./bin/kafka-topics.sh --bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092 --list
17.创建生产者:
./bin/kafka-console-producer.sh --broker-list CentOSA:9092,CentOSB:9092,CentOSC:9092 --topic topic01
18.创建消费者:
./bin/kafka-console-consumer.sh --bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092 --topic topic01 --group g1 --property print.key=true --property print.value=true --property key.separator=,
- –property print.key=true :打印key值,默认不打印
- –property print.value=true :设置打印value值
- –property key.separator=, :设置key和value之间的分割符

19.查看消费者组信息:
./bin/kafka-consumer-groups.sh --bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092 --list
20.查看组信息:
./bin/kafka-consumer-groups.sh --bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092 --describe --group g1