当前位置:首页 > 服务端 > kafka集群安装

kafka集群安装

2022年09月17日 22:13:56服务端4

官方文档:http://kafka.apache.org/documentation/

其他参考:http://blog.csdn.net/code52/article/details/50475511

http://www.infoq.com/cn/articles/kafka-analysis-part-1

http://www.orchome.com/kafka/index

 

 

安装环境:

  • master 192.168.255.120
  • slave1 192.168.255.121
  • slave2 192.168.255.122
  • java环境
  • (可选)zookeeper环境

 安装步骤 

1、下载解压

wget  http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/1.0.1/kafka_2.12-1.0.1.tgz

 

2、修改配置

vim /usr/local/kafka_2.12-1.0.1/config/server.properties

broker.id=0        #每个实例不一样
listeners=PLAINTEXT://192.168.255.120:9092    #改为所在主机的ip
advertised.host.name=192.168.255.120     #改为改为所在主机的ip
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/kafkalogs                                         #需手动创建,kafka并不会根据配置文件自动创建
num.partitions=1
num.recovery.threads.per.data.dir=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.255.120:2181,192.168.255.121:2181,192.168.255.122:2181         #修改为zookeeper所在主机ip:port
zookeeper.connection.timeout.ms=6000
delete.topic.enable=true
auto.create.topics.enable=false

3、启动

(1)Kafka依赖ZooKeeper,需要先启动zookeeper,如果自己没安装zookeeper,可以使用和kafka包的自带的zookeeper。

bin/zookeeper-server-start.sh config/zookeeper.properties

(2)再启动kafka

bin/kafka-server-start.sh -daemon config/server.properties 

 

4、测试

(1)在master创建一个名为test的topic

bin/kafka-topics.sh --create --zookeeper 192.168.255.120:2181 --replication-factor 1 --partitions 1 --topic test

查看topic

bin/kafka-topics.sh --list --zookeeper 192.168.255.120:2181

(2)slave1和slave2上创建consumer

bin/kafka-console-consumer.sh --zookeeper 192.168.255.120:2181 --topic test --from-beginning

(3)master上创建producer

bin/kafka-console-producer.sh --broker-list 192.168.255.120:9092 --topic test

 如下图

kafka集群安装 _ JavaClub全栈架构师技术笔记

kafka集群安装 _ JavaClub全栈架构师技术笔记

kafka集群安装 _ JavaClub全栈架构师技术笔记

 

Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].

这句话的意思:

现在正在使用的ConsoleConsumer已废弃,在未来的版本将会被删除。考虑通过[bootstrap-server]代替[zookeeper]来使用新的consumer,即创建消费者时,用以下命令:

bin/kafka-console-consumer.sh --bootstrap-server 192.168.255.120:2181 --topic test --from-beginning

 

其他常用命令

停止kafka

/usr/local/kafka_2.12-1.0.1/bin/kafka-server-stop.sh

删除topic

报错排查

1、启动时报错:failed; error='Cannot allocate memory' (errno=12) 

原因:内存不够

解决办法:1、加内存

2、杀死占用内存高的进程

3、修改kafka-server-start.sh

 将export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"

 改为 export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"

kafka是什么

Apache kafka是消息中间件的一种,我发现很多人不知道消息中间件是什么,在开始学习之前,我这边就先简单的解释一下什么是消息中间件,只是粗略的讲解,目前kafka已经可以做更多的事情。

举个例子,生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就消费一个鸡蛋,假设消费者消费鸡蛋的时候噎住了(系统宕机了),生产者还在生产鸡蛋,那新生产的鸡蛋就丢失了。再比如生产者很强劲(大交易量的情况),生产者1秒钟生产100个鸡蛋,消费者1秒钟只能吃50个鸡蛋,那要不了一会,消费者就吃不消了(消息堵塞,最终导致系统超时),消费者拒绝再吃了,”鸡蛋“又丢失了,这个时候我们放个篮子在它们中间,生产出来的鸡蛋都放到篮子里,消费者去篮子里拿鸡蛋,这样鸡蛋就不会丢失了,都在篮子里,而这个篮子就是”kafka“。
鸡蛋其实就是“数据流”,系统之间的交互都是通过“数据流”来传输的(就是tcp、http什么的),也称为报文,也叫“消息”。
消息队列满了,其实就是篮子满了,”鸡蛋“ 放不下了,那赶紧多放几个篮子,其实就是kafka的扩容。
各位现在知道kafka是干什么的了吧,它就是那个"篮子"。

http://www.orchome.com/kafka/index

术语

Broker  Kafka集群包含一个或多个服务器,这种服务器被称为broker,broker端不维护数据的消费状态,提升了性能。直接使用磁盘进行存储,线性读写,速度快:避免了数据在JVM内存和系统内存之间的复制,减少耗性能的创建对象和垃圾回收。 

Topic   每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。Topic在逻辑上可以被认为是一个队列queue,每条消费都必须指定它的Topic,可以简单理解为必须指明把这条消息放进哪个queue里(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)

Partition  Partition是物理上的概念,每个Topic包含一个或多个Partition. 为了使得Kafka的吞吐率可以线性提高,物理上把Topic分成一个或多个Partition,每个Partition在物理上对应一个文件夹,该文件夹下存储这个Partition的所有消息和索引文件。若创建topic1和topic2两个topic,且分别有13个和19个分区,则整个集群上会相应会生成共32个文件夹

Producer  负责发布消息到Kafka broker

Consumer  消息消费者,从Kafka broker读取消息的客户端。consumer从broker拉取(pull)数据并进行处理

Consumer Group  每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。

作者:fanren224
来源链接:https://www.cnblogs.com/fanren224/p/8577866.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/42855.html

标签: Kafka
分享给朋友:

“kafka集群安装” 的相关文章

kafka集群搭建

kafka集群搭建

本文将记录使用kafka镜像,分别在两种场景下搭建3节点集群:1.在一台机器上使用容器方式安装kafka集群;2.在三台机器上使用容器方式安装kafka集群。 此次使用的是wurstmeister的,下载量是比较大的。使用下面命令下载: docker pull wur...

kafka消息长度限制

更改为10M 客户端代码增加:max_request_size=10485760, 服务端配置:replica.fetch.max.bytes=10485760,message.max.bytes=10485760...

【kafka】安装部署kafka集群(kafka版本:kafka_2.12-2.3.0)

3.2.1 下载kafka并安装kafka_2.12-2.3.0.tgz tar -zxvf kafka_2.12-2.3.0.tgz 3.2.2 配置kafka集群 在config/server.properties中修改参数: [had...

kafka-server-stop.sh关闭Kafka失败

Kafka brokers need to finish the shutdown process before the zookeepers do. So start the zookeepers, then the kafka brokers wil...

在CentOS 7上安装Kafka

简介 Kafka 是一种高吞吐的分布式发布订阅消息系统,能够替代传统的消息队列用于解耦合数据处理,缓存未处理消息等,同时具有更高的吞吐率,支持分区、多副本、冗余,因此被广泛用于大规模消息数据处理应用。Kafka 支持Java 及多种其它语言客户端,可与Hadoop、Storm、S...

Linux下Kafka下载与安装教程

Linux下Kafka下载与安装教程

原文链接:http://www.studyshare.cn/software/details/1176/0 一、预备环境 Kafka是java生态圈中的一员,运行在java虚拟机上,按Kafka官方说明,java环境推荐Java8;Kafka需要Zookeeper保存集群的...

kafka集群原理介绍

kafka集群原理介绍 @(博客文章)[kafka|大数据] 目录 kafka集群原理介绍 (一)基础理论 二、配置文件 三、错误处理 本系统文章共三篇,分别为 1、ka...

Kafka 快速入门(安装)

Kafka 快速入门(安装)

kafka学习目录:kafka目录 二、Kafka 快速入门 2.1、windows版安装 2.1.1、Quick Start 本次安装学习在Windows操作系统进行。(Linux版本的差别不大,运行脚本文件后缀从bat...

Kafka如何保证消息不丢失不重复

首先需要思考下边几个问题: 消息丢失是什么造成的,从生产端和消费端两个角度来考虑 消息重复是什么造成的,从生产端和消费端两个角度来考虑 如何保证消息有序 如果保证消息不重不漏,损失的是什么 大概总结下 消费端重复消费:建立去重表 消费端丢失数据...

kafka查看topic列表和topic消息

kafka查看topic列表和topic消息

查询topic 列表信息 前提是需要进入到kafka的目录 Linux 目录 \kafka_2.12-2.8.0\bin\ sh kafka-topics.sh --list --zookeeper localhost:2181 windo...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。