Kafka安装配置

本文详细介绍Kafka的安装配置过程,包括下载、启动服务、创建主题、集群配置及读写外部数据等关键步骤,适合初学者快速入门。

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

Kafka简介

Kafka消息由键、值、时间戳组成,同一类别的消息称为主题。
主题会有多个订阅者,每个主题维护着一组分区日志,每个分区位于不同服务器上,每次只会向其中一个分区写入数据,并分配分区偏移量offset。
Kafka消息会保存一段时间,不管是否被消费。
消费者通过offset来读取对应的消息,每读取一条offset自动加1。
多个消费者实例组成消费者组,主题会将消息发往所有消费者组,并只会被该组的一个消费者实例消费掉。

下载安装

wget http://mirrors.hust.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgz
tar –xzf kafka_2.11-2.0.0.tgz
cd kafka_2.11-2.0.0
安装Screen会话:
yum -y install screen
screen -ls  	    -> 所有会话列表
screen -S name 	-> 新建会话
screen -r name 	-> 进入会话(CTRL + A +D,离开会话)

启动服务

  1. Kafka依赖于ZooKeeper,首先启动ZooKeeper服务,如果服务未启动,Kafka提供了快速启动脚本:
screen -S zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
  1. 启动Kafka服务
 screen -S kafka-server
 bin/kafka-server-start.sh config/server.properties

消息主题

  1. 创建主题
    bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
  2. 删除主题
    bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test
  3. 主题列表
    bin/kafka-topics.sh --list --zookeeper localhost:2181
  4. 查看主题
    bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
    每一行代表一个分区,部分参数说明:
    “leader” 负责所有的读写操作
    “replicas” 副本节点
    “isr” 存活节点
  5. 查看主题offset
    bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic test --time -1
    –time -1 # get latest offset
    –time -2 # get smallest offset
  6. 查看主题内容
    bin/kafka-run-class.sh kafka.tools.SimpleConsumerShell --broker-list localhost:9092 --topic test --max-messages 1 --offset 1 --partition 0
  7. 分区扩容
    bin/kafka-topics.sh --zookeeper localhost:2181 -alter --partitions 2 --topic test
  8. 发送消息
    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
  9. 消费消息
    bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

Kafka集群

  1. 新增节点配置
cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties
config/server-1.properties:
   broker.id=1
   listeners=PLAINTEXT://:9093
   log.dirs=/tmp/kafka-logs-1

config/server-2.properties:
   broker.id=2
   listeners=PLAINTEXT://:9094
   log.dirs=/tmp/kafka-logs-2
  1. 启动新增节点
bin/kafka-server-start.sh config/server-1.properties &
bin/kafka-server-start.sh config/server-2.properties &
  1. 集群测试
bin/kafka-topics.sh --create --zookeeper localhost:2181 
--replication-factor 3 --partitions 1 --topic my-replicated-topic
bin/kafka-topics.sh --describe --zookeeper localhost:2181 
--topic my-replicated-topic
bin/kafka-console-producer.sh --broker-list localhost:9092 
--topic my-replicated-topic
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 
--from-beginning --topic my-replicated-topic
ps aux | grep server-1.properties
kill -9 pid
bin/kafka-topics.sh --describe --zookeeper localhost:2181 
--topic my-replicated-topic
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 
--from-beginning --topic my-replicated-topic

Kafka读写外部数据

a) 创建外部数据源
echo -e “foo\nbar” > test.txt
b) 启动 connectors
bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties
包含三个配置文件参数,第一个用于配置Kafka Connect Process,后两个分别用于创建两个connector,
source connector:从test.txt读取数据到connect-test 主题
sink connector:从connect-test主题读取数据,并写入到test.sink.txt文件
c) 查看目标文件
more test.sink.txt
d) 查看topic数据
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic connect-test --from-beginning
e) 追加数据
echo Another line>> test.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值