目录
基础环境要求
单机:
- JDK1.8+,配置JAVA_HOME
- 操作系统Centos 6.10 64bit
- 配置主机名和IP映射
- 关闭防火墙&防火墙开机自动启动
- 安装&启动Zookeeper
- 安装&启动/关闭Kafka
集群:
- 安装JDK,配置JAVA_HOME
- 操作系统Centos 6.10 64bit
- 配置主机名和IP映射
- 关闭防火墙&防火墙开机自动启动
- 同步时钟ntpdate cn.pool.ntp.org | ntp[1-7].aliyun.com
- 安装&启动Zookeeper
- 安装&启动/关闭Kafka
Topic管理:
- 创建:
./bin/kafka-topics.sh
--bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092
--create
--topic topic02
--partitions 3
--replication-factor 3
-
查看:
./bin/kafka-topics.sh
--bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092
--list
-
详情:
./bin/kafka-topics.sh
--bootstrap-server CentOSA:9092,CentOSB:9092,CentOS:9092
--describe
--topic topic01
- 修改:
./bin/kafka-topics.sh
--bootstrap-server CentOSA:9092,CentOSB:9092,CentOS:9092
--alter
--topic topic03
--partitions 2
-
删除:
./bin/kafka-topics.sh
--bootstrap-server CentOSA:9092,CentOSB:9092,CentOS:9092
--delete
--topic topic03
- 订阅:
./bin/kafka-console-consumer.sh
--bootstrap-server CentOSA:9092,CentOSB:9092,CentOS:9092
--topic topic01
--group g1
--property print.key=true
--property print.value=true
--property key.separator=,
-
生产:
./bin/kafka-console-producer.sh
--broker-list CentOSA:9092,CentOSB:9092,CentOS:9092
--topic topic01
-
消费组:
./bin/kafka-consumer-groups.sh
-- bootstrap-server CentOSA:9092,CentOSB:9092,CentOS:9092
--list
g1
./bin/kafka-consumer-groups.sh
--bootstrap-server CentOSA:9092,CentOSB:9092,CentOS:9092
--describi
-- group g1
关闭防火墙:[root@CentOS /]# service iptables stop
开机永久关闭:[root@CentOS /]# chkconfig iptables off
Zookeeper单机安装
- 减压安装包
- 复制zoo_sample.cfg为zoo.cfg:[root@CentOS zookeeper-3.4.6]# cp conf/zoo_sample.cfg conf/zoo.cfg
- 修改zoo.cfg:
创建/root/zkdata目录:[root@CentOS zookeeper-3.4.6]# mkdir /root/zkdata
-
启动zookeeper:[root@CentOS zookeeper-3.4.6]# ./bin/zkServer.sh start ./conf/zoo.cfg
-
查看状态:[root@CentOS zookeeper-3.4.6]# ./bin/zkServer.sh status ./conf/zoo.cfg
JMX enabled by default Using config: ./conf/zoo.cfg Mode: standalone
可以用jps命令查看
-
[root@CentOS zookeeper-3.4.6]# jps 3156 QuorumPeerMain 3173 Jps
Kafka单机配置
1. 修改server.properties
2. kafka的启动(后台启动)
[root@CentOS kafka_2.11-2.2.0]# ./bin/kafka-server-start.sh -daemon config/server.properties
3. kafka的关闭
[root@CentOS kafka_2.11-2.2.0]# ./bin/kafka-server-stop.sh
4. 创建Topic
[root@CentOS kafka_2.11-2.2.0]# ./bin/kafka-topics.sh --bootstrap-server CentOS:9092 --create --topic topic01 --partitions 3 --replication-factor 1
5. 订阅Topic,等待消息
[root@CentOS kafka_2.11-2.2.0]# ./bin/kafka-console-consumer.sh --bootstrap-server CentOS:9092 --topic topic01 --group group1
6. 向Topic发布消息
[root@CentOS kafka_2.11-2.2.0]# ./bin/kafka-console-producer.sh --broker-list CentOS:9092 --topic topic01
7. 效果展示
订阅者:
发布者:
Kafka集群配置(集群的启动方式和单机一样)
1. 安装JDK(同单机)
2. 配置hosts文件 -ssh免密认证
3 . 关闭防火墙
4. 服务器时钟同步
[root@centosa ~]# ntpdate ntp1.aliyun.com
[root@centosa ~]# clock -w
5. zookeeper配置
6. 配置zkdata对应关系(CentOSA、CentOSB、CentOSC对应你自己的三台虚拟机)
CentOSA:[root@centosa ~]# echo 1 > /root/zkdata/myid
CentOSB:[root@centosa ~]# echo 2 > /root/zkdata/myid
CentOSC:[root@centosa ~]# echo 3 > /root/zkdata/myid
7. 配置Kafka
server.properties
Topic管理
1、创建topic
[root@centosa kafka_2.11-2.2.0]# ./bin/kafka-topics.sh --bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092 --create --topic topic01 --partitions 3 --replication-factor 2
2、查询topic列表
[root@centosa kafka_2.11-2.2.0]# ./bin/kafka-topics.sh --bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092 --list
4、查看topic详情
[root@centosa kafka_2.11-2.2.0]# ./bin/kafka-topics.sh --bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092 --describe --topic topic01
5、修改分区-只能增不能减
[root@centosa kafka_2.11-2.2.0]# ./bin/kafka-topics.sh --bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092 --alter --topic topic02 --partitions 3
6、删除topic
[root@centosa kafka_2.11-2.2.0]# ./bin/kafka-topics.sh --bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092 --delete --topic topic02
7、订阅topic(启动一个消费者)
[root@centosa kafka_2.11-2.2.0]# ./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=,
8、发布者
[root@centosb kafka_2.11-2.2.0]# ./bin/kafka-console-producer.sh --broker-list CentOSA:9092,CentOSB:9092,CentOSC:9092 --topic topic01
9、消费组
查看:[root@centosc kafka_2.11-2.2.0]# ./bin/kafka-consumer-groups.sh --bootstrap-server CentOSA:9092,CentOSB:9092,CentOSC:9092 --list