一、方式一
step1、配置java环境,在挂网下载kafka_2.12-2.7.0
step2、
tar -zxvf kafka_2.12-2.7.0.tgz -C /usr/src/
chown -R root:root /usr/src/kafka_2.12-2.7.0/ #设置属主和属组
cd /usr/src/kafka_2.12-2.7.0/
step3、修改配置文件
vim server.properties
broker.id =0 每一个broker在集群中的唯一表示,要求是正数。
listeners=PLAINTEXT://127.0.0.1:9092 监听端口
zookeeper.connect=127.0.0.1:2181 zook的端口
zookeeper.connection.timeout.ms=60000 ZooKeeper的最大超时时间
vim zookeeper.properties
clientPort=2181 #监听端口
step4、关闭防火墙
systemctl stop firewalld
step5、启动
5.1、启动zookeeper
[root@localhost config]# cd /usr/kafka
[root@localhost kafka]# ./bin/zookeeper-server-start.sh -daemon ./config/zookeeper.properties
[root@localhost kafka]# netstat -anpt | grep 2181
5.2、启动kafka
[root@localhost kafka]# ./bin/kafka-server-start.sh -daemon ./config/server.properties
5.3、关闭zk
[root@localhost kafka]# ./bin/zookeeper-server-stop.sh ./config/zookeeper.properties
5.4、关闭kafka
[root@localhost kafka]# ./bin/kafka-server-stop.sh ./config/server.properties
5.5、创建topic
[root@localhost kafka]# ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
5.6、查看topic
[root@localhost kafka]# ./bin/kafka-topics.sh --list --zookeeper localhost:2181
二、方式二docker方式
1、拉取zookeeper
docker pull wurstmeister/zookeeper
2、启动zookeeper镜像
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper
3、拉取kafka镜像
docker pull wurstmeister/kafka
4、启动kafka容器
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_NUM_PARTITIONS=10 -e KAFKA_LOG_RETENTION_HOURS=5 -e KAFKA_ZOOKEEPER_CONNECT=xx.xx.xx.xx:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://xx.xx.xx.xx:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka
注:如果修改消息过期时间,则启动容器时添加 -e KAFKA_LOG_RETENTION_HOURS=5
三、docker方式搭建kafka集群
1、安装zookeeper,同上
2、三台机器拉取kafka镜像
3、三台机器ip地址:IP1,IP2,IP3,其中zookeeper部署在ip1上
4、运行容器
(1)第一台
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka1 -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_LOG_RETENTION_HOURS=5 -e KAFKA_ZOOKEEPER_CONNECT=IP1:2181/kafka -e KAFKA_LOG_RETENTION_HOURS=5 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://IP1:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka
(2)第二台
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka1 -p 9092:9092 -e KAFKA_BROKER_ID=1 -e KAFKA_LOG_RETENTION_HOURS=5 -e KAFKA_ZOOKEEPER_CONNECT=IP1:2181/kafka -e KAFKA_LOG_RETENTION_HOURS=5 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://IP2:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka
(3)第三台
docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka1 -p 9092:9092 -e KAFKA_BROKER_ID=2 -e KAFKA_LOG_RETENTION_HOURS=5 -e KAFKA_ZOOKEEPER_CONNECT=IP1:2181/kafka -e KAFKA_LOG_RETENTION_HOURS=5 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://IP3:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka
四、创建topic
1、进入容器
docker exec -it 容器id/bin/bash
2、创建topic
kafka-topics.sh --create --topic mytopic --bootstrap-server localhost:9092 --partitions 60 --replication-factor 1