apache-zookeeper-3.5.9-bin.tar.gz
jdk-8u321-linux-x64.tar.gz
kafka_2.13-2.4.0.tgz
搭建java环境,这里就不说明了
搭建zookeeper集群,这里单机集群(多台服务器分开安装)
安装zookeeper
解压到指定路径
tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz -C /usr/local/java
进入到解压路径
cd /usr/local/java
修改apache-zookeeper-3.5.9-bin 文件名为zookeeper(可以不修 改)
mv apache-zookeeper-3.5.9-bin zookeeper
修改zookeeper配置文件配置文件名称为zoo.cfg
/usr/local/java/zookeeper/conf
mv zoo_sample.cfg zoo.cfg
修改zoo.cfg 配置文件
vi zoo.cfg
dataDir=/usr/local/java/zookeeper/data 修改路径
增加下列配置
#日志
dataLogDir=/usr/local/java/zookeeper/logs
#Zookeeper AdminServer,默认使用8080端口, 需要定义端口
admin.serverPort=8081
server.1=192.168.25.101:2881:3881
server.2=192.168.25.101:2882:3882
server.3=192.168.25.101:2883:3883
创建zoo.cfg 配置的文件(dataDir=/usr/local/java/zookeeper/data)
在/usr/local/java/zookeeper/创建文件
mkdir data
在/usr/local/java/zookeeper/data创建文件
touch myid
修改 myid,写入1, 对应server.1=192.168.25.101:2881:3881
复制上面zookeeper并改名称
cp -r zookeeper zookeeper1
cp -r zookeeper zookeeper2
修改zookeeper1 配置文件
dataDir=/usr/local/java/zookeeper/data 修改为 dataDir=/usr/local/java/zookeeper1/data
dataLogDir=/usr/local/java/zookeeper/logs修改为dataLogDir=/usr/local/java/zookeeper1/logs
clientPort=2181修改为clientPort=2182
#Zookeeper AdminServer,默认使用8080端口
admin.serverPort=8081修改为admin.serverPort=8082
修改myid 文件, 1改为2, 对应server.2=192.168.25.101:2882:3882
修改zookeeper2 配置文件, 修改参考zookeeper1 配置文件修改
启动zookeeper
进入/usr/local/java
sh zookeeper/bin/zkServer.sh start
sh zookeeper1/bin/zkServer.sh start
sh zookeeper2/bin/zkServer.sh start
5.关闭zookeeper
sh zookeeper/bin/zkServer.sh stop
6.其他相关命令
./zkServer.sh status 查看zookeeper状态
三. 搭建kafka 集群
1.安装kafka
解压到指定路径
tar -zxvf kafka_2.13-2.4.0.tgz -C /usr/local/java
2.修改 kafka_2.13-2.4.0 为kafka
mv kafka_2.13-2.4.0 kafka
3.修改kafka1 配置文件server.properties(/usr/local/java/kafka/config/server.properties)
broker.id=0改为broker.id=1 #这个配置默认是注释的,默认9092,如果在多台机器上搭建集群,这个可以不用动,单机搭得改,不然>三个服务全都默认9092就冲突了 listeners=PLAINTEXT://192.168.25.101:9090 新增 advertised.listeners=PLAINTEXT://192.168.25.101:9090 log.dirs=/tmp/kafka-logs 改为log.dirs=/usr/local/java/kafka/logs zookeeper.connect=localhost:2181改为 zookeeper.connect=192.168.25.101:2181,192.168.25.101:2182,192.168.25.101:2183 检查/usr/local/java/kafka 路径下是否有logs文件,没有则需要新建文件
4.复制上面配置好的kafka
cp -f kafka kafka1
cp -f kafka kafka1
5.修改kafka 配置文件server.properties(/usr/local/java/kafka1/config/server.properties)
broker.id=1改为broker.id=2 #这个配置默认是注释的,默认9092,如果在多台机器上搭建集群,这个可以不用动,单机搭得改,不然>三个服务全都默认9092就冲突了 listeners=PLAINTEXT://192.168.25.101:9090 修改为listeners=PLAINTEXT://192.168.25.101:9091 advertised.listeners=PLAINTEXT://192.168.25.101:9090 修改为advertised.listeners=PLAINTEXT://192.168.25.101:9091 log.dirs=/usr/local/java/kafka/logs修改为log.dirs=/usr/local/java/kafka1/logs
6.修改kafka2 配置文件server.properties 参考kafka1 配置文件server.properties
7.启动kafka , 进入/usr/local/java/kafka、/usr/local/java/kafka1、/usr/local/java/kafka2
#这里为什么用nohup , 因为不然启动起来这个控制台就一直被占着了
nohup sh bin/kafka-server-start.sh config/server.properties &
nohup sh bin/kafka-server-start.sh config/server.properties &
nohup sh bin/kafka-server-start.sh config/server.properties &
#这样启动或占用控制台
sh bin/kafka-server-start.sh config/server.properties
8.创建Topic(1个分区1个备份)进入/usr/local/java/kafka/bin
sh kafka-topics.sh --create --bootstrap-server 192.168.25.101:9090 --replication-factor 1 --partitions 1 --topic test
sh kafka-topics.sh --list --bootstrap-server 192.168.25.101:9090
创建Topic(1个分区3个备份)
sh kafka-topics.sh --create --bootstrap-server 192.168.25.101:9090 --replication-factor 3 --partitions 1 --topic my-replicated-topic
sh kafka-topics.sh --list --bootstrap-server 192.168.25.101:9090
sh kafka-topics.sh --describe --bootstrap-server 192.168.25.101:9090 --topic my-replicated-topic # 查看当前的leader等信息
9.发送消息
sh kafka-console-producer.sh --bootstrap-server 192.168.25.101:9090 --topic test
这里一行一行输入需要发送的消息
10.接收消息
sh kafka-console-consumer.sh --bootstrap-server 192.168.25.101:9090 --topic test --from-beginning



