【kafka】kafka单节点安装及配置

前言

软件环境:

一台虚拟主机,配置IP为192.168.0.56。

软件依赖:

启用kafka自带的Zookeeper服务
Zookeeper是用java写的所以需要搭建JAVA环境(JDK版本 >= 1.7)。

1.安装JDK

目前官网不能直接下载,在网上找到1.8.0版本安装包下载到本地。

1.1.下载jdk
#远程登陆主机 (使用Xshell)
$ssh root@192.168.0.56

#将jdk包传输到root用户根目录下(使用FileZilla)

#查看root用户根目录是否存在jdk-8u171-linux-x64.tar.gz
[root@localhost ~]# ls
anaconda-ks.cfg  jdk-8u171-linux-x64.tar.gz
1.2.安装jdk
#创建java安装目录
[root@localhost ~]# mkdir /opt/java

#解压jdk包到安装目录
[root@localhost ~]# tar zxvf jdk-8u171-linux-x64.tar.gz -C /opt/java
1.3.配置java环境变量
#在文件中追加配置:
[root@localhost ~]# vim /etc/profile
export JAVA_HOME=/opt/java/jdk1.8.0_171
export PATH=$JAVA_HOME/bin:$PATH

#使配置生效
[root@localhost ~]# source /etc/profile
1.4.验证jdk是否安装成功
[root@localhost ~]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
2.安装kafka

下载地址:https://mirrors.cnnic.cn/apache/kafka (这里我们选择最新的2.12-1.1.0版本)

2.1.下载kafka
#windows浏览器下载
1. 访问 https://mirrors.cnnic.cn/apache/kafka/1.1.0/kafka_2.12-1.1.0.tgz
2. 将下载的kafka_2.12-1.1.0.tgz传输到root用户根目录下

#linux命令直接下载
[root@localhost ~]# wget https://mirrors.cnnic.cn/apache/kafka/1.1.0/kafka_2.12-1.1.0.tgz

#查看linux是否已存在kafka_2.12-1.1.0.tgz
[root@localhost ~]# ls
anaconda-ks.cfg  jdk-8u171-linux-x64.tar.gz  kafka_2.12-1.1.0.tgz
2.2.安装kafka
#创建安装目录/opt/kafka
[root@localhost ~]# mkdir /opt/kafka

#解压kafka包到安装目录
[root@localhost ~]# tar zxvf kafka_2.12-1.1.0.tgz -C /opt/kafka
2.3.配置kafka环境变量
#在文件中追加配置:
[root@localhost ~]# vim /etc/profile
export KAFKA_HOME=/opt/kafka/kafka_2.12-1.1.0
export PATH=KAFKA_HOME/bin:$PATH

#使配置生效
[root@localhost ~]# source /etc/profile
2.4.验证kafka是否安装成功
#验证环境变量是否配置成功
[root@localhost ~]# echo $KAFKA_HOME
/opt/kafka/kafka_2.12-1.1.0

#输入kafka-按TAB键补全,看是否会有下面命令输出
[root@localhost ~]# kafka-
kafka-acls.sh kafka-console-producer.sh kafka-delete-records.sh ...
2.5.修改kafka配置文件
#创建kafka消息存放目录
[root@localhost ~]# mkdir -p /opt/kafka/data/kafkalogs

#更改log.dirs路径为创建的路径
[root@localhost ~]# vim /opt/kafka/kafka_2.12-1.1.0/config/server.properties
log.dirs=/opt/kafka/data/kafkalogs
2.6.启动zookeeper服务
[root@localhost ~]# zookeeper-server-start.sh -daemon $KAFKA_HOME/config/zookeeper.properties
[root@localhost ~]# jps
15152 QuorumPeerMain
15175 Jps
2.7.启动kafka服务
[root@localhost ~]# kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
[root@localhost ~]# jps
15152 QuorumPeerMain
15462 Jps
15439 Kafka
2.8.关闭服务
#先关闭kafka
[root@localhost ~]# kafka-server-stop.sh

#再关闭zookeeper
[root@localhost ~]# zookeeper-server-stop.sh

#查看服务是否已关闭
[root@localhost ~]# jps
15462 Jps
<think>我们参考引用中的信息,特别是引用[3]关于Ubuntu上安装Kafka的步骤,但用户要求的是单节点安装,不限定系统?但根据引用[1][2][4]都是Windows的,而引用[3]是Ubuntu的。由于用户没有指定操作系统,我们将分别提供Windows和Linux(以Ubuntu为例)两种系统的安装步骤。但注意,Kafka通常运行在Linux环境下,生产环境推荐Linux。这里我们提供两种方案,用户可根据需要选择。 由于用户问题中引用的内容包含Windows和Ubuntu,且用户没有明确系统,我们决定分别介绍。 ### 单节点安装Apache Kafka #### 前置条件 1. 安装Java Development Kit (JDK) 8或更高版本,并配置环境变量(`JAVA_HOME`和`PATH`)。 - 验证:在终端运行`java -version`。 #### 在Windows上安装 步骤基于引用[1][2][4]: 1. **下载Kafka**:从[官网](https://kafka.apache.org/downloads)下载二进制包(如`kafka_2.13-3.6.1.tgz`),解压到本地目录(例如`F:\kafka`)。 2. **配置ZooKeeper**(Kafka自带的单节点ZooKeeper): - 修改`config\zookeeper.properties`,设置数据目录(例如`dataDir=F:/kafka/zookeeper-data`)。 3. **配置Kafka**: - 修改`config\server.properties`,设置日志目录(例如`log.dirs=F:/kafka/kafka-logs`)和监听地址(`listeners=PLAINTEXT://localhost:9092`)。 4. **启动服务**: - 打开两个命令提示符窗口: - 启动ZooKeeper:`bin\windows\zookeeper-server-start.bat config\zookeeper.properties` - 启动Kafka:`bin\windows\kafka-server-start.bat config\server.properties` 5. **测试**: - 创建主题:`bin\windows\kafka-topics.bat --bootstrap-server localhost:9092 --topic test --create --partitions 1 --replication-factor 1` - 启动生产者:`bin\windows\kafka-console-producer.bat --bootstrap-server localhost:9092 --topic test` - 启动消费者:`bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning` #### 在Linux(Ubuntu)上安装 步骤基于引用[3]: 1. **下载和解压Kafka**: ```bash wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz tar -xzf kafka_2.13-3.6.1.tgz mv kafka_2.13-3.6.1 kafka cd kafka ``` 2. **配置ZooKeeper**(使用Kafka自带的单节点ZooKeeper): - 修改`config/zookeeper.properties`,设置数据目录(例如`dataDir=/tmp/zookeeper`)。 3. **配置Kafka**: - 修改`config/server.properties`,设置日志目录(例如`log.dirs=/tmp/kafka-logs`)和监听地址(`listeners=PLAINTEXT://:9092`)。 4. **启动服务**: - 启动ZooKeeper(后台运行):`bin/zookeeper-server-start.sh -daemon config/zookeeper.properties` - 启动Kafka(后台运行):`bin/kafka-server-start.sh -daemon config/server.properties` - 或者前台运行(便于调试):去掉`-daemon`参数。 5. **测试**(类似Windows): - 创建主题:`bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic test --create --partitions 1 --replication-factor 1` - 启动生产者:`bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test` - 启动消费者:`bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning` ### 注意事项 - 单节点配置仅适用于开发和测试环境,生产环境需要多节点集群。 - 防火墙设置:确保端口2181(ZooKeeper)和9092(Kafka)开放。 - 数据持久化:配置中的日志目录(`log.dirs`)和数据目录(`dataDir`)应设置在持久化存储位置。 ### 配置为系统服务(Ubuntu) 引用[3]提供了将Kafka配置为系统服务的方法,这里简要说明: 1. 为Kafka创建系统用户(可选):`sudo useradd kafka -m` 2. 创建服务文件`/etc/systemd/system/kafka.service`,内容参考引用[3]。 3. 启用并启动服务: ```bash sudo systemctl daemon-reload sudo systemctl enable kafka sudo systemctl start kafka ``` ### 总结 以上步骤在单台服务器上完成了Kafka安装配置。用户可以根据自己的操作系统选择相应的安装方式。在Windows上,通过命令行启动;在Linux上,还可以配置为系统服务实现开机自启。 §§相关问题§§ 1. 如何配置Kafka的多节点集群? 2. Kafka的生产者和消费者API如何使用? 3. 如何保证Kafka的数据可靠性? 4. Kafka的监控和性能调优有哪些方法?</think>### 在单台服务器上安装配置Apache Kafka #### 前置条件 1. **安装JDK** Kafka依赖Java环境(推荐JDK 8+): ```bash sudo apt update sudo apt install openjdk-11-jdk # Ubuntu示例 ``` 验证安装:`java -version`。 2. **下载Kafka** 从[官网](https://kafka.apache.org/downloads)下载最新二进制包(例如3.6.1): ```bash wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz tar -xzf kafka_2.13-3.6.1.tgz mv kafka_2.13-3.6.1 kafka cd kafka ``` --- #### 配置与启动 1. **配置ZooKeeper**(单节点内置) 修改`config/zookeeper.properties`: ```properties dataDir=/tmp/zookeeper # ZooKeeper数据目录 clientPort=2181 # 客户端连接端口 ``` 2. **配置Kafka服务** 修改`config/server.properties`: ```properties listeners=PLAINTEXT://:9092 # 监听地址(设置为服务器IP或0.0.0.0) log.dirs=/tmp/kafka-logs # Kafka日志存储目录 zookeeper.connect=localhost:2181 # ZooKeeper地址 num.partitions=1 # 单节点分区数(按需调整) ``` 3. **启动服务** - 启动ZooKeeper: ```bash bin/zookeeper-server-start.sh -daemon config/zookeeper.properties ``` - 启动Kafka: ```bash bin/kafka-server-start.sh -daemon config/server.properties ``` --- #### 验证安装 1. **创建测试主题**: ```bash bin/kafka-topics.sh --create \ --bootstrap-server localhost:9092 \ --topic test-topic \ --partitions 1 \ --replication-factor 1 ``` 2. **发送/接收消息**: - 启动生产者: ```bash bin/kafka-console-producer.sh \ --bootstrap-server localhost:9092 \ --topic test-topic ``` - 启动消费者(新终端): ```bash bin/kafka-console-consumer.sh \ --bootstrap-server localhost:9092 \ --topic test-topic \ --from-beginning ``` 在生产者终端输入消息,消费者终端应实时显示。 --- #### 配置为系统服务(可选) 1. **创建ZooKeeper服务文件** `/etc/systemd/system/zookeeper.service`: ```ini [Unit] Description=Apache Zookeeper After=network.target [Service] Type=simple User=root ExecStart=/path/to/kafka/bin/zookeeper-server-start.sh /path/to/kafka/config/zookeeper.properties Restart=on-failure [Install] WantedBy=multi-user.target ``` 2. **创建Kafka服务文件** `/etc/systemd/system/kafka.service`: ```ini [Unit] Description=Apache Kafka Requires=zookeeper.service After=zookeeper.service [Service] Type=simple User=root ExecStart=/path/to/kafka/bin/kafka-server-start.sh /path/to/kafka/config/server.properties Restart=on-failure [Install] WantedBy=multi-user.target ``` 3. **启用服务**: ```bash sudo systemctl daemon-reload sudo systemctl start zookeeper sudo systemctl start kafka sudo systemctl enable zookeeper kafka # 开机自启 ``` --- #### 关键注意事项 1. **防火墙**:开放端口`2181`(ZooKeeper)、`9092`(Kafka)。 2. **数据持久化**:将`log.dirs`和`dataDir`指向持久化存储目录(如`/var/lib/kafka`)。 3. **安全配置**(生产环境必做): - 启用SASL认证 - 配置SSL加密通信 - 参考官方文档:[Kafka Security](https://kafka.apache.org/documentation/#security) > 提示:单节点配置仅适用于开发/测试环境,生产环境需部署集群并配置副本机制(Replication)[^3][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值