kafka安装部署
单机kafka安装部署
拷贝文件
先拷贝kafka_2.11-2.2.0.tgz和zookeeper-3.4.14.tar.gz到/opt/software
cd /opt
mkdir software #存放压缩包
mkdir module #存放解压缩后的文件
cd software
tar -zxvf zookeeper-3.4.14.tar.gz -C ../module #解压缩到module文件夹,安装kafka前需要先安装jdk环境和zookeeper
tar -zxvf kafka_2.11-2.2.0.tgz -C ../module #解压缩到module文件夹
修改zookeeper配置并启动
cd /opt/module/zookeeper-3.4.14/
mkdir data
cd /opt/module/zookeeper-3.4.14/conf/
cp zoo_sample.cfg zoo.cfg
vim /opt/module/zookeeper-3.4.14/conf/zoo.cfg
# 修改dataDir=/opt/module/zookeeper-3.4.14/data

:wq #保存退出
/opt/module/zookeeper-3.4.14/bin/zkServer.sh start #启动zookeepr

修改kafka配置并启动
cd /opt/module/kafka_2.11-2.2.0
mkdir log #后面放日志用
vim /opt/module/kafka_2.11-2.2.0/config/server.properties
#修改log.dirs=/opt/module/kafka_2.11-2.2.0/log

按上图修改后
:wq #保存并退出
/opt/module/kafka_2.11-2.2.0/bin/kafka-server-start.sh -daemon
/opt/module/kafka_2.11-2.2.0/config/server.properties #用刚才的配置文件后台启动
#可以输入jps -l 或者jcmd查看是否启动成功(若是命令不行可以输入这条指令先安装)
yum install java-1.8.0-openjdk-devel.x86_64 -y
#(vim /opt/module/kafka_2.11-2.2.0/bin/kafka-server-stop.sh修改为
#PIDS=$(jps -lm | grep -i 'kafka.Kafka' | awk '{print $1}')
#)不然无法关闭进程


创建主题并验证
/opt/module/kafka_2.11-2.2.0/bin/kafka-topics.sh --zookeeper localhost:2181
--create --topic dyyy --partitions 2 --replication-factor 1 #创建主题
/opt/module/kafka_2.11-2.2.0/bin/kafka-topics.sh --zookeeper localhost:2181
--list # 列出主题
/opt/module/kafka_2.11-2.2.0/bin/kafka-topics.sh --zookeeper localhost:2181
--describe --topic dyyy #查看详情

发布订阅测试
/opt/module/kafka_2.11-2.2.0/bin/kafka-console-consumer.sh
--bootstrap-server 192.168.70.198:9092 --topic dyyy --from-beginning#消费者监听dyyy主题
#这时再打开一个窗口,切换到kafka的bin目录,输入命令(--from-beginning)表示从头开始取消息)
/opt/module/kafka_2.11-2.2.0/bin/kafka-console-producer.sh
--broker-list 192.168.70.198:9092 --topic dyyy
#然后输入文字,消费者那接收到了


各种命令
启动kafka
/opt/module/kafka_2.11-2.2.0/bin/kafka-server-start.sh -daemon
/opt/module/kafka_2.11-2.2.0/config/server.properties
关闭kafka
/opt/module/kafka_2.11-2.2.0/bin/kafka-server-stop.sh #关闭需要等待一两分钟
修改kafka配置
vim /opt/module/kafka_2.11-2.2.0/config/server.properties
查看kafka进程
ps -ef|grep kafka
列出kafka主题
/opt/module/kafka_2.11-2.2.0/bin/kafka-topics.sh --zookeeper localhost:2181 --list
关闭zookeeper
/opt/module/zookeeper-3.4.14/bin/zkServer.sh stop
开启zookeeper
/opt/module/zookeeper-3.4.14/bin/zkServer.sh start
查看zookeeper状态
/opt/module/zookeeper-3.4.14/bin/zkServer.sh status
删除topic
vim /opt/module/kafka_2.11-2.2.0/config/server.properties delete.topic.enable=true #添加这条配置 #然后,才能通过命令删除topic /opt/module/kafka_2.11-2.2.0/bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic dyyy
集群搭建
这里以3台服务器为例子,首先解压zookeeper到/opt/module/zookeeper-3.4.14/
修改zookeeper配置文件
vim /opt/module/zookeeper-3.4.14/conf/zoo.cfg

-
dataDir:存储内存中数据库快照的位置,除非另有说明,否则指向数据库更新的事务日志。注意:应该谨慎的选择日志存放的位置,使用专用的日志存储设备能够大大提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会很大程度上影像系统性能。
-
server.A=B:C:D
A:其中 A 是一个数字,表示这个是服务器的编号;
B:是这个服务器的 ip 地址;
C:Leader选举的端口;
D:Zookeeper服务器之间的通信端口。
我们需要修改的第一个是 dataDir ,在指定的位置处创建好目录。
第二个需要新增的是 server.A=B:C:D 配置,其中 A 对应下面我们即将介绍的myid 文件。B是集群的各个IP地址,C:D 是端口配置
创建myid文件
在 上一步 dataDir 指定的目录下,创建 myid 文件。

然后在该文件添加上一步 server 配置的对应 A 数字。
比如这里的示例ip是192.168.70.198,那么myid中写入0。
启动zookeeper
./zkServer.sh start 另外两个服务器按照以上步骤启动。
查看各实例运行情况
/opt/module/zookeeper-3.4.14/bin/zkServer.sh status



成功了,一个leader,两个follower。要是集群没成功,记得打开3888端口的防火墙
修改kafka配置文件
vim /opt/module/kafka_2.11-2.2.0/config/server.properties


num.partitions=3 #设置分区数 default.replication.factor=3 #设置副本数,才能保证集群稳定 group.initial.rebalance.delay.ms=3000
kafka创建主题
/opt/module/kafka_2.11-2.2.0/bin/kafka-topics.sh --zookeeper 192.168.70.194:2181,192.168.70.195:2181,192.168.70.198:2181 --create --replication-factor 3 --partitions 3 --topic testdyyy#创建zookeeper的ip可以自己选个数,这里选了3个ip的zookeeper并创建testdyyy的主题
现在去上面3台的任意一处,输入/opt/module/kafka_2.11-2.2.0/bin/kafka-topics.sh --zookeeper localhost:2181 --list都能看到testdyyy的主题
生产者测试
向主题中写入内容
/opt/module/kafka_2.11-2.2.0/bin/kafka-console-producer.sh --broker-list 192.168.70.194:9092,192.168.70.195:9092,192.168.70.198:9092 --topic testdyyy#这里也可以选择zookeeper的数量
消费者测试
/opt/module/kafka_2.11-2.2.0/bin/kafka-console-consumer.sh --bootstrap-server 192.168.70.195:9092 --topic testdyyy --from-beginning #任意一台虚拟机中输入任意一个服务器地址可以看到下面的内容



浙公网安备 33010602011771号