linux安装kafka
kafka中文文档:https://kafka.apachecn.org/
一、下载kafka
下载kafka两种方式
1、手动下载 下载地址:http://kafka.apache.org/downloads 选择适合的版本进行下载,目前最新版本时kafka_2.13-2.7.0
下载好了然后上传服务器。
2、也可以用命令下载(直接下载到服务器哦!):
命令:wget https://mirror.bit.edu.cn/apache/kafka/2.7.0/kafka_2.13-2.7.0.tgz
二、解压kafka:
命令:tar -xzvf kafka_2.13-2.7.0.tgz
三、修改server.properties文件
在config目录下输入命令:vi server.properties
修改内容为:
############################# Server Basics #############################
# broker 的全局唯一编号,不能重复
broker.id=0
############################# Socket Server Settings #############################
# 配置监听,修改为本机ip
advertised.listeners=PLAINTEXT://10.10.54.198:9092
# 处理网络请求的线程数量,默认
num.network.threads=3
# 用来处理磁盘IO的线程数量,默认
num.io.threads=8
# 发送套接字的缓冲区大小,默认
socket.send.buffer.bytes=102400
# 接收套接字的缓冲区大小,默认
socket.receive.buffer.bytes=102400
# 请求套接字的缓冲区大小,默认
socket.request.max.bytes=104857600
############################# Zookeeper #############################
# 配置zookeeper连接地址
zookeeper.connect=localhost:2181
############################# Log Basics #############################
# kafka 运行日志存放路径
log.dirs=/usr/local/kafka/kafka_2.13-2.7.0/log/kafka
# topic 在当前broker上的分片个数,与broker保持一致
num.partitions=3
# 用来恢复和清理data下数据的线程数量,默认
num.recovery.threads.per.data.dir=1
############################# Log Retention Policy #############################
# segment文件保留的最长时间,超时将被删除,默认
log.retention.hours=168
# 滚动生成新的segment文件的最大时间,默认
log.roll.hours=168
由于我修改了日志存放地址 我需要创建一个文件夹
mkdir /usr/local/kafka/kafka_2.13-2.7.0/log #创建日志目录
mkdir /usr/local/kafka/kafka_2.13-2.7.0/log/kafka #创建kafka日志目录
四、修改zookeeper.properties文件
进入kafka目录下 config目录下输入命令:vi zookeeper.properties
#修改为自定义的zookeeper数据目录
dataDir=/usr/local/kafka/kafka_2.13-2.7.0/zookeeper
#修改为自定义的zookeeper日志目录
dataLogDir=/usr/local/kafka/kafka_2.13-2.7.0/log/zookeeper
# 端口
clientPort=2181
#注释掉
#maxClientCnxns=0
由于我修改了默认的数据目录地址和日志目录需要创建文件夹
首先新建kafka的日志目录和zookeeper数据目录,因为这两项默认放在tmp目录,而tmp目录中内容会随重启而丢失,所以我们自定义以下目录:
mkdir /usr/local/kafka/kafka_2.13-2.7.0/zookeeper #创建zookeeper数据目录
mkdir /usr/local/kafka/kafka_2.13-2.7.0/log #创建日志目录
mkdir /usr/local/kafka/kafka_2.13-2.7.0/log/zookeeper #创建zookeeper日志目录
五、修改完之后就可以启动zookeeper和kafka了。
直接敲命令感觉有些low呀。弄一个脚本命令吧: 启动脚本:
进入kafka目录下 输入命令:vi kafkaStart.sh
添加内容为:
#!/bin/bash
#启动zookeeper
/usr/local/kafka/kafka_2.13-2.7.0/bin/zookeeper-server-start.sh /usr/local/kafka/kafka_2.13-2.7.0/config/zookeeper.properties &
sleep 3 #默默等3秒后执行
#启动kafka
/usr/local/kafka/kafka_2.13-2.7.0/bin/kafka-server-start.sh /usr/local/kafka/kafka_2.13-2.7.0/config/server.properties &
添加脚本执行权限:
在刚创建的脚本目录许下执行以下命令
chmod +x kafkastart.sh(启动脚本名称)
六、启动kafka
注意:本地环境必须安装了Java 8+。
1、先启动zookeeper(脚本方式启动则不用单独启动zookeeper)。
在kafka目录下输入 启动命令:
nohup bin/zookeeper-server-start.sh config/zookeeper.properties >log/zookeeper/zookeeper.log 2>1 &
2、启动kafka
在kafka目录下输入 启动脚本命令:
nohup bin/kafka-server-start.sh config/server.properties >log/kafka/kafka.log 2>1 &
七、创建topic 出现Created topid test 则创建成功
命令:在kafka 目录下bin目录下执行:
test是topic名字可以随便换。
bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092
查询创建的top主题 出现test则为正常
命令:在kafka 目录下bin目录下执行:
bin/kafka-topics.sh --list --zookeeper localhost:2181
查询topic的信息
bin/kafka-topics.sh --describe --topic test --bootstrap-server localhost:9092
删除创建的topic
命令:在kafka 目录下bin目录下执行:
bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic 要删除的topic名称`
八、测试生成者(test topic):
命令:在kafka 目录下bin目录下执行:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
九、测试消费者 启动另一个xsheel窗口 这样效果更明显哦!(test topic):
命令:在kafka 目录下bin目录下执行:
--from-beginning 从最早开始消费
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
十、到此结束kafka单机版本
ps -ef | grep kafka
kill -9 kafka进程号
ps -ef | grep zookeeper
kill -9 zookeeper进程号
注意:一定要先关闭kafka在关闭zookeeper !!! 如果先关闭zookeeper kafka会一直去连接zookeeper服务 进入死循环了。 如果进入死循环有两种解决办法:
1、重启服务
shutdown -h 10 #计算机将于10分钟后关闭,且会显示在登录用户的当前屏幕中
shutdown -h now #计算机会立刻关机
shutdown -h 22:22 #计算机会在这个时刻关机
shutdown -r now #计算机会立刻重启
shutdown -r +10 #计算机会将于10分钟后重启
reboot #重启
halt #关机
2、新打开一个xsheel窗口 然后把kafka杀掉。
(完)
---------------------------------欢迎留言--------------------------------------------
---------------------如果对你有帮助,请点个赞---------------------------------
文档信息
版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
发表日期: 2021年2月5日