厌学的小骚年

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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日

posted on 2021-02-09 15:14  厌学的小骚年  阅读(140)  评论(0编辑  收藏  举报