kafka单机安装

本文介绍了Kafka在单机环境下安装配置的方法,并详细解释了如何搭建包含多个Broker的集群,包括配置文件的设置、启动流程及验证消息传递等关键步骤。

最近一个项目要使用到kafka,所以看了一些资料,总结了一下单机的安装方法。

一、1个broker

1.官网下载kafka

wget  http://mirrors.cnnic.cn/apache/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz 
cd kafka_2.11-0.8.2.1

2.启动zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties &

3.启动kafka server
bin/kafka-server-start.sh config/server.properties &

4.创建topic
bin/kafka-topics.sh --create  --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看创建topics是否成功
bin/kafka-topics.sh --list --zookeeper localhost:2181
查看topics详细信息
bin/kafka-topics.sh --describe --zookeeper localhost:2181

5.启动producer
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
6.启动consumer
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
在producer窗口输入信息,回车后,在consumer窗口可以看到。注意到这里,启动producer时,使用的是kafka的端口;而启动consumer时,使用的是zookeeper的端口。

二、多个brokers(单机)
1.设置配置文件
cp config/server.properties config/server-1.properties
cp config/server.properties config/server-1.properties
config/server-1.properties
broker.id=1
port=9093
log.dir=/tmp/kafka-logs-1

config/server-2.properties
broker.id=1
port=9094
log.dir=/tmp/kafka-logs-2
broker.id是每个broker唯一且永久的标识,因为当前所有broker都部署在一台机器上,所以需要修改port和log.dir。

2.启动这两台broker
bin/kafka-server-start.sh config/server-1.properties &
bin/kafka-server-start.sh config/server-2.properties &

3.创建topic,设置replication-factor为3
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic

4.通过describe命令查看topic的详细信息
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
Topic:test PartitionCount:1 ReplicationFactor:1 Configs:
	Topic: test	Partition: 0	Leader: 0	Replicas: 0	Isr: 0
第一行是所有partition的一个summary,下面的每一行是每个partition的具体信息。因为我们这里只有一个partition,所以只有一行。
leader:负责所有的read-write请求。
replicas:消息备份的节点(不管节点是否是leader,或者是否alive)。
isr:in-sync replicas。是replicas的一个子集。是指replicas中状态为alive的节点。

5.发布消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replicated-topic
6.消费消息
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic

7.测试容错性
在第4步中看到,leader是节点1,现在把这个进程关闭。
ps -ef | grep server-1.properties
kill -9 14576
通过describe命令再次查看,可以看到leader已经变成了节点2,isr列表中也没有了节点1。但是这都不影响消息的消费。

### Kafka 单机环境安装教程 #### 1. Java 环境准备 Kafka 是基于 Scala 开发的工具,因此需要依赖于 Java 运行环境。在开始之前,请确保已正确安装并配置 JDK 1.8 或更高版本[^2]。 可以通过以下命令验证 Java 是否可用以及其版本号: ```bash java -version ``` 如果未安装 Java,则需先下载并安装适合操作系统的 JDK 版本。 --- #### 2. Zookeeper安装与配置 Kafka 使用 Apache ZooKeeper 来管理集群元数据和其他协调功能。以下是单机模式下 Zookeeper安装步骤: ##### (a) 下载 Zookeeper 访问官方镜像站点获取最新稳定版本的 Zookeeper 压缩包[^3]: ```bash wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-<version>/zookeeper-<version>.tar.gz ``` 解压压缩包到目标目录: ```bash tar -zxvf zookeeper-<version>.tar.gz -C /usr/local/ cd /usr/local/zookeeper-<version> ``` ##### (b) 修改 `zoo.cfg` 文件 编辑默认配置文件 `/conf/zoo_sample.cfg` 并将其重命名为 `zoo.cfg`: ```bash cp conf/zoo_sample.cfg conf/zoo.cfg ``` 确认其中的关键参数设置如下: ```properties tickTime=2000 dataDir=/tmp/zookeeper clientPort=2181 initLimit=5 syncLimit=2 ``` 启动 Zookeeper 服务: ```bash ./bin/zkServer.sh start ``` 通过以下命令检查状态以确保正常运行: ```bash ./bin/zkServer.sh status ``` --- #### 3. Kafka安装与配置 完成上述准备工作后即可继续安装 Kafka。 ##### (a) 下载 Kafka 前往官网或镜像站点下载 Kafka 安装包: ```bash wget https://downloads.apache.org/kafka/<version>/kafka_<scala-version>-<version>.tgz ``` 解压至指定路径: ```bash tar -zxvf kafka_<scala-version>-<version>.tgz -C /opt/ cd /opt/kafka_<scala-version>-<version>/ ``` ##### (b) 配置 Kafka Broker 进入 Kafka 解压后的根目录,找到 `config/server.properties` 文件进行必要的调整[^1]: 关键属性说明及推荐值: - **broker.id**: 设置唯一的 broker ID,默认为 0。 - **listeners**: 指定监听器端口,例如 `PLAINTEXT://localhost:9092`。 - **log.dirs**: 日志存储位置,建议单独分配磁盘空间。 - **zookeeper.connect**: 指向本地 Zookeeper 实例,例如 `localhost:2181`。 保存更改后退出。 --- #### 4. 启动 Kafka 和测试 依次执行以下命令来启动 Kafka 及相关组件,并验证基本功能。 ##### (a) 启动 Kafka Server 后台运行 Kafka 服务: ```bash ./bin/kafka-server-start.sh -daemon config/server.properties ``` 可通过以下方式检查 Kafka 是否成功启动[^4]: ```bash ps aux | grep kafka ``` ##### (b) 创建 Topic 测试 创建一个新的主题用于消息传递: ```bash ./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 \ --replication-factor 1 --partitions 1 --topic test_topic ``` 列出当前所有主题以验证: ```bash ./bin/kafka-topics.sh --list --bootstrap-server localhost:9092 ``` ##### (c) 生产者与消费者测试 模拟发送一条消息给该主题: ```bash echo "This is a test message." | ./bin/kafka-console-producer.sh \ --broker-list localhost:9092 --topic test_topic ``` 随后开启另一个终端窗口作为消费者接收此条消息: ```bash ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 \ --from-beginning --topic test_topic ``` 当看到刚才生产的字符串时即表明整个流程工作正常。 --- #### 5. 自定义启动脚本(可选) 为了简化日常运维操作,可以编写简单的 Shell 脚本来控制 Kafka 的启停过程[^5]。下面是一个基础模板供参考: ```bash #!/bin/bash home=kafka_2.12-2.5.0 port=9092 if [ -z "$1" ]; then echo "Command error, please specify 'start', 'stop' or 'status'!" exit fi if [ "$1" == "start" ]; then sh "./$home/bin/kafka-server-start.sh" -daemon "./$home/config/server.properties" elif [ "$1" == "stop" ]; then sh "./$home/bin/kafka-server-stop.sh" elif [ "$1" == "status" ]; then netstat -anp | grep $port else echo "Command error, please specify 'start', 'stop' or 'status'!" fi ``` 赋予脚本权限后再调用它实现对应动作。 --- ### 总结 以上便是完整的 Kafka 单机环境搭建指南,涵盖了从必要条件检查到最终功能性检验的所有环节。希望这些指导能够帮助顺利完成部署任务!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值