Linux下kafka单机版搭建

本文详细介绍了如何在Linux系统上安装和配置ApacheZooKeeper3.6.4,以及Kafka3.4.1,包括创建目录、下载安装包、修改配置、添加环境变量、启动服务、编写启动和停止脚本,以及内网穿透设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.zookeeper的安装

这里使用3.6.4版本

前提:服务器已经安装了jdk,zookeeper运行需要jdk环境

1.1创建放zookeeper的目录

#创建目录
mkdir -p /usr/local/zookeeper

#赋予权限
chmod 777 /usr/local/zookeeper

1.2安装包的下载

#这里推荐去官网下载
https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.4/apache-zookeeper-3.6.4-bin.tar.gz

1.3放置安装包并解压

#切换到创建的目录
cd /usr/local/zookeeper

#将下载的包放在该目录

#解压该目录
tar -zxvf apache-zookeeper-3.6.4-bin.tar.gz

#重命名
mv apache-zookeeper-3.6.4-bin zookeeper-3.6.4

1.4修改配置文件

#进入配置文件目录
cd /usr/local/zookeeper/zookeeper-3.6.4/conf

#复制原有的配置文件并改名
cp zoo_sample.cfg zoo.cfg

#修改配置文件
vim zoo.cfg

#内容如下:
# 数据文件夹
dataDir=/usr/local/zookeeper/zookeeper-3.6.4/data
    
# 日志文件夹
dataLogDir=/usr/local/zookeeper/zookeeper-3.6.4/logs

# 客户端访问 zookeeper 的端口号
clientPort=2181



#退出保存zoo.cfg
:wq

1.5添加环境变量

#编辑环境变量文件
vim /etc/profile
#尾部添加如下内容
export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.6.4/
export PATH=$ZOOKEEPER_HOME/bin:$PATH
export PATH

#退出保存
:wq

#重新执行一下
source /etc/profile

1.6测试zookeeper启动

#进入bin目录
cd /usr/local/zookeeper/zookeeper-3.6.4/bin

#启动服务
zkServer.sh start

ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/zookeeper-3.6.4/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
出现这个就是成功了

#查看状态
zkServer.sh status

#关闭服务
zkServer.sh stop

#重启服务
zkServer.sh restart

2.kafka的安装

2.1下载kafka

下载地址:Apache Kafka

在这里插入图片描述

这里两个,第一个带源码我们可以下载下来查看对应的zookeeper版本

解压后的gradle/dependencies.gradle文件里面有zookeeper版本号

2.2创建目录

mkdir -p /opt/kafka  #y用于存放kafka的解压包

mkdir -p /opt/kafka/kafka_data #用于存放kafka的数据

mkdir -p /opt/kafka/kafka_log #用于存放kafka的日志

2.3将kafka解压

将下载的kafka放在/opt/kafka

#解压
tar -zxvf kafka_2.12-3.4.1.tgz

2.4配置kafka服务

cd /opt/kafka/kafka_2.12-3.4.1/config

vim server.properties

#修改一下参数
broker.id=0
#端口号
port=9092   
#服务器IP地址,修改为自己的服务器IP
host.name=localhost
#日志存放路径,上面创建的目录
log.dirs=/opt/kafka/kafka_log
#zookeeper地址和端口,单机配置部署,localhost:2181
zookeeper.connect=localhost:2181         

2.5启动kafka

/opt/kafka/kafka_2.12-3.4.1/bin/kafka-server-start.sh /opt/kafka/kafka_2.12-3.4.1/config/server.properties

2.6测试

前提开启两个终端,一个生产者,一个消费者

2.6.1生产者

cd /opt/kafka/kafka_2.12-3.4.1/bin

./kafka-console-producer.sh --broker-list localhost:9092 --topic test

2.6.2消费者

cd /opt/kafka/kafka_2.12-3.4.1/bin

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test

3.脚本设计

上面都是手动启动,这里可以考虑写一个脚本,自动去启动

3.1启动脚本

cd /opt/kafka/kafka_2.12-3.4.1/bin

vim kafka_start.sh

#内容如下:

#!/bin/bash
#
echo "启动zookeeper服务..."
sh /usr/local/zookeeper/zookeeper-3.6.4/bin/zkServer.sh start
sleep 5
echo "启动kafka服务..."
/opt/kafka/kafka_2.12-3.4.1/bin/kafka-server-start.sh /opt/kafka/kafka_2.12-3.4.1/config/server.properties &i

3.2关闭脚本

cd /opt/kafka/kafka_2.12-3.4.1/bin

vim kafka_stop.sh

#内容如下:

#!/bin/bash
echo "启动zookeeper服务..."
sh /usr/local/zookeeper/zookeeper-3.6.4/bin/zkServer.sh stop
sleep 5
echo "启动kafka服务..."
/opt/kafka/kafka_2.12-3.4.1/bin/kafka-server-stop.sh /opt/kafka/kafka_2.12-3.4.1/config/server.properties 

3.3给脚本赋予权限

chmod +x kafka_start.sh
 
chmod +x kafka_stop.sh

3.4设置开机自启

vi /etc/rc.d/rc.local #编辑,在最后添加一行
sh /opt/kafka/kafka_2.12-3.4.1/kafka_start.sh & #设置开机自动在后台运行脚本

4.内网穿透

在kafka的配置文件server.properties里面设置如下

############################# Socket Server Settings #############################

# The address the socket server listens on. It will get the value returned from 
# java.net.InetAddress.getCanonicalHostName() if not configured.
#   FORMAT:
#     listeners = listener_name://host_name:port
#   EXAMPLE:
#     listeners = PLAINTEXT://your.host.name:9092
#listeners=PLAINTEXT://:9092
listeners=PRIVATE://0.0.0.0:9093,PUBLIC://0.0.0.0:9092


auto.create.topics.enable=true

# Hostname and port the broker will advertise to producers and consumers. If not set, 
# it uses the value for "listeners" if configured.  Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
#advertised.listeners=PLAINTEXT://your.host.name:9092
#修改为外网ip
advertised.listeners=PRIVATE://192.168.150.203:9093,PUBLIC://10.140.211.88:9092

inter.broker.listener.name=PRIVATE
listener.security.protocol.map=PRIVATE:PLAINTEXT,PUBLIC:PLAINTEXT
Linux系统部署单机版Kafka可以按照以下步骤进行: 1. 下载Kafka:首先,你需要从Apache Kafka的官方网站(https://kafka.apache.org/downloads)下载Kafka的二进制文件。选择适合你系统的版本并下载。 2. 解压文件:将下载的Kafka压缩包解压到你选择的目录中。可以使用以下命令解压: ``` tar -xzf kafka_<version>.tgz cd kafka_<version> ``` 3. 配置Kafka:进入Kafka目录后,你需要编辑配置文件以适应你的环境。主要配置文件是`config/server.properties`。你可以根据需要修改以下配置项: - `broker.id`:Kafka Broker的唯一标识符。 - `listeners`:Kafka监听的地址和端口。 - `log.dirs`:Kafka存储日志文件的目录。 - `zookeeper.connect`:Zookeeper的连接地址和端口。 4. 启动Zookeeper:Kafka依赖于Zookeeper来管理集群状态和元数据。你需要启动Zookeeper服务。可以使用以下命令启动: ``` bin/zookeeper-server-start.sh config/zookeeper.properties ``` 5. 启动Kafka Broker:在启动Kafka Broker之前,确保Zookeeper已经成功启动。使用以下命令启动Kafka Broker: ``` bin/kafka-server-start.sh config/server.properties ``` 6. 创建Topic:在Kafka中,消息通过Topic进行发布和订阅。你可以使用以下命令创建一个Topic: ``` bin/kafka-topics.sh --create --topic my_topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1 ``` 7. 发布和消费消息:现在你可以使用Kafka提供的命令行工具来发布和消费消息。以下是一些常用的命令: - 发布消息: ``` bin/kafka-console-producer.sh --topic my_topic --bootstrap-server localhost:9092 ``` - 消费消息: ``` bin/kafka-console-consumer.sh --topic my_topic --bootstrap-server localhost:9092 --from-beginning ``` 以上是部署单机版Kafka的基本步骤。你可以根据需要进行配置和扩展。如果你想了解更多关于Kafka的详细信息,请参考官方文档。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值