Kafka实战-Kafka Cluster
在《Kafka实战-入门》一篇中,为大家介绍了Kafka的相关背景、原理架构以及一些关键知识点,本篇博客为大家来赘述一下Kafka Cluster的相关内容,下面是今天为大家分享的目录:
基础软件的准备 Kafka Cluster的部署 Send Messages下面开始今天的内容分享。
2.基础软件的准备 2.1 ZK由于Kafka Cluster需要依赖ZooKeeper(后面简称ZK)集群来协同管理,所以这里我们需要事先搭建好ZK集群,关于ZK的集群搭建,大家可以参考我写的《配置高可用的Hadoop平台》,这篇文章中我介绍了如何去搭建ZK,这里就不多赘述,本篇博客为大家介绍如何去搭建Kafka Cluster。
2.2 Kafka由于Kafka已经贡献到Apache基金会了,我们可以到Apache的官方网站上去下载Kafka的基础安装包,下载地址如下所示:
Kafka安装包 [下载地址]
Kafka源代码 [下载地址]
这里,我们直接使用官方编译好的安装包进行Kafka Cluster的安装部署。下面我们来开始Kafka Cluster的搭建部署。
3.Kafka Cluster的部署首先,我们将下载好的Kafka基础安装包解压,命令如下所示:
解压Kafka[hadoop@dn1 ~]$ tar -zxvf kafka_2.9.1-0.8.2.1.tgz
进入到Kafka解压目录
export KAFKA_HOME=/home/hadoop/kafka_2.11-0.8.2.1 export PATH=$PATH:$KAFKA_HOME/bin
配置Kafka的zookeeper.properties
# the directory where the snapshot is stored. dataDir=/home/hadoop/data/zk # the port at which the clients will connect clientPort=2181 # disable the per-ip limit on the number of connections since this is a non-production config maxClientCnxns=0
配置server.properties
# The id of the broker. This must be set to a unique integer for each broker. broker.id=0
注:这里配置broker的时候,每台机器上的broker保证唯一,从0开始。如:在另外2台机器上分别配置broker.id=1,broker.id=2
配置producer.properties# list of brokers used for bootstrapping knowledge about the rest of the cluster # format: host1:port1,host2:port2 ... metadata.broker.list=dn1:9092,dn2:9092,dn3:9092
配置consumer.properties
# Zookeeper connection string # comma separated host:port pairs, each corresponding to a zk # server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002" zookeeper.connect=dn1:2181,dn2:2181,dn3:2181
至此,Kafka Cluster部署完成。
4.Send Messages 4.1启动首先,在启动Kafka集群服务之前,确保我们的ZK集群已启动,下面我们启动Kafka集群服务。启动命令如下所示:
[hadoop@dn1 kafka_2.11-0.8.2.1]$ kafka-server-start.sh config/server.properties
注:其他2个节点参照上述方式启动。
另外,启动其他节点的时候,在最先开始启动的节点会显示其它节点加入的信息记录,如下图所示:
4.2验证启动进程[hadoop@dn1 kafka_2.11-0.8.2.1]$ jps 2049 QuorumPeerMain 2184 Kafka 2233 Jps4.3创建Topic
在服务启动后,我们开始创建一个Topic,命令如下所示:
[hadoop@dn1 ]$ kafka-topics.sh --zookeeper dn1:2181,dn2:2181,dn3:2181 --topic test1 --replication-factor 3 --partitions 1 --create
然后,我们查看该Topic的相关信息,命令如下所示:
[hadoop@dn1 ]$ kafka-topics.sh --zookeeper dn1:2181,dn2:2181,dn3:2181 --topic test1 --describe
预览信息如下图所示:
下面解释一下这些输出。第一行是对所有分区的一个描述,然后每个分区都会对应一行,因为我们只有一个分区所以下面就只加了一行。
Leader:负责处理消息的读和写,Leader是从所有节点中随机选择的。 Replicas:列出了所有的副本节点,不管节点是否在服务中。 Isr:是正在服务中的节点 4.4生产消息下面我们使用kafka的Producer生产一些消息,然后让Kafka的Consumer去消费,命令如下所示:
[hadoop@dn1 ]$ kafka-console-producer.sh --broker-list dn1:9092,dn2:9092,dn3:9092 --topic test14.4消费消息
接着,我们在另外一个节点启动消费进程,来消费这些消息,命令如下所示:
[hadoop@dn2 ]$ kafka-console-consumer.sh --zookeeper dn1:2181,dn2:2181,dn3:2181 --from-beginning --topic test1
消费记录如下图所示:
5.HA特性这里,从上面的截图信息可以看出,在DN1节点上Kafka服务上Lead,我们先将DN1节点的Kafka服务kill掉,命令如下:
[hadoop@dn1 config]$ jps 2049 QuorumPeerMain 2375 Jps 2184 Kafka [hadoop@dn1 config]$ kill -9 2184
然后,其他节点立马选举出了新的Leader,如下图所示:
下面,我们来测试消息的生产和消费,如下图所示:
通过测试,可以发现,Kafka的HA特性还是不错的,拥有不错的容错机制。
这里,在部署Kafka Cluster的时候,有些地方需要我们注意,比如:在我们启动Kafka集群的时候,确保ZK集群启动,另外,在配置Kafka配置文件信息时,确保ZK的集群信息配置到相应的配置文件中,总体来说,配置还算较为简单,需要在部署的时候,仔细配置各个文件即可。
7.结束语这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!
什么是Kafka? 通过Kafka的快速入门 https://www.cnblogs.com/tree1123/p/11150927.html 能了解到Kafka的基本部署,使用,但他和其他的消息中间件有什么不同呢? Kafka的基本原理,术语,版本等等都是怎么样的?到底什么是Kafka呢?
【Kafka】 Kafka是什么,Kafka的安装与配置,Kafka的使用场景,Kafka基本概念,Kafka的初体验,消费模式,消费组的偏移量(offset),主题/分区/日志的概念,Topic/Partition/Broker的初体验,消费顺序,Kafka核心总控制器Controller,Controller选举机制,Partition副本选举Leader机制,消费消息的offset记录机制,Rebalance机制,分区分配策略,Rebalance过程,producer发布消息机制,HW与LEO,日志分段存储,十亿消息数据线上环境规划,JVM参数设置,线上问题及优化,消息丢失,重复消费,乱序,积压,积压
为什么 Kafka 速度那么快? Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka的特性之一就是高吞吐率。 即使是普通的服务器,Kafka也可以轻松支持每秒百万级的写入请求,超过了大部分的消息中间件,这种特性也使得Kafka在日志处理等海量数据场景广泛应用。
相关文章
- 图说Kafka基本概念
- Kafka入门实战教程:学习总结目录索引
- rabbitmq 和 kafka使用场景[通俗易懂]
- angular面试问题_kafka面试题
- kafka学习之Kafka 的简介(一)
- 3w字超详细 kafka 入门到实战
- Linux 搭建 Kafka教程[通俗易懂]
- kafka批量删除topic_查看kafka集群状态命令
- windows的安装_kafka windows安装
- kafka之ranger插件的一个坑
- kafka 结合springboot实战--第一节
- kafka 结合springboot实战--第三节
- Kafka和Flink双剑合璧,Confluent收购Immerok引起业内广泛讨论
- kafka之三 Kafka 高可用详解大数据
- Kafka实战-数据持久化详解大数据
- Kafka实战-Kafka到Storm详解大数据
- Kafka实战-简单示例详解大数据
- Kafka项目实战-用户日志上报实时统计之分析与设计详解大数据
- 欢迎购买《Kafka源码解析与实战》详解编程语言
- Linux环境下部署Kafka服务器实践(linux kafka)
- 利用Kafka与Oracle实现实时数据交换(kafka oracle)
- Oracle与Kafka新一代数据处理技术(oracle与kafka)