Kafka集群的部署与简单使用演示

本文档详细介绍了Apache Kafka的分布式特性、设计目标以及在日志收集和消息系统中的应用。通过实例展示了如何在两个节点上安装和配置Zookeeper与Kafka,包括设置数据目录、启动服务以及创建和测试Topic。Kafka被比喻为中央电视台,生产者是内容制作团队,消费者是观众,Zookeeper则是协调者。整个过程涵盖了从下载安装包到启动服务的全部步骤,并提供了测试Kafka功能的方法。
摘要由CSDN通过智能技术生成

Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。

主要应用场景是:日志收集系统和消息系统。

Kafka主要设计目标如下:

  • 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能。
  • 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输。
  • 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输。
  • 同时支持离线数据处理和实时数据处理。
  • Scale out:支持在线水平扩展

 

首先打个比方,kafka好比就是中央电视台,而中央电视台下面有很多节目,生产者就是制作节目的团队,而消费者就是我们观看这个节目的人,一开始在zookeeper创建一个节目,假设就叫cctv1,有了这个节目名后,我们就得请一个团队来填充这个节目,比如拉广告啊,放电视剧之类的数据,而我们消费者要观看这个节目的话就得需要zookeeper来授权给我们。中央电视台则只是存数据的,相当于一个中间人,和现在中介差不多个意思。

 

节点规化:

一般要求为奇数个节点,如1、3、5、7,这里演示2个节点如下:

192.168.42.73 node1

192.168.42.74 node2

请注意计算机名要与hostname一致,之后需要写入到本地host进行解析

 

准备安装包

下载kafka与zookeeper安装包

https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.8.0/kafka_2.12-2.8.0.tgz

https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz

并上传至服务器的/root下。

安装zookeeper

tar -xzvf apache-zookeeper-3.7.0-bin.tar.gz -C zookeeper
cd zookeeper
mkdir data
cp config/zoo_sample.cfg zoo.cfg
vi zoo.cfg
#修改默认数据位置
dataDir=/root/zookeeper/data 
#最后增加内容
server.1=192.168.42.73:2888:3888
server.2=192.168.42.74:2888:3888
#修改host,主机名要一致
echo '192.168.42.73 node1' >> /etc/hosts 
echo '192.168.42.74 node2' >> /etc/hosts 
echo 1 > data/myid
cd ..
#将所有文件分发到另外一台服务器
scp zookeeper 192.168.42.74:/root/
#修改另外一台服务器的myid
cd /root/zookeeper/data
sed -i 's/1/2/g' myid
#在所有节点上启动zookeeper
cd /root/zookeeper
bin/zkServer.sh start &
#完成后,它会监听2181、2888、3888端口,并进行选举。
#查看状态
bin/zkServer.sh status

 

安装kafka

tar -xzvf kafka_2.12-2.8.0.tgz -C
cd kafka
cp config/server.properties config/server.properties.1 #备份配置
vi config/server.properties
#修改
broker.id=0
log.dirs=/root/kafka/data #修改数据位置
mkdir data #新建数据目录
#分发软件包至另外的节点
scp kafka 192.168.42.74:/root/
#修改其它的节点的配置
vi conf/server.properties
#修改
broker.id=1
#在所有节点上启动kafka
bin/kafka-server-start.sh config/server.properties &

看到所有的节点都启动成功。

测试kafka

#创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic logbox
#查看topic
bin/kafka-topics.sh --list --zookeeper localhost:2181
#生产数据
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic logbox
#它会打开一个输入流,同时在192.168.42.74上打开一个消费者
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic logbox
#然后我们在数据生产这里所有的输入行都会自动显示在消费者的控制台里面

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值