1、环境CentOS6.8 + jdk1.8.0_151+zookeeper-3.4.11
jdk安装请参考CentOS 搭建JDK环境
Zookeeper安装请参考Zookeeper集群搭建
2、下载 kafka_2.12-0.11.0.2.tgz,下载地址: http://kafka.apache.org/downloads
3、安装
3.1、上传kafka_2.12-0.11.0.2.tgz至/usr/dev/kafka安装目录下
3.2、将kafka_2.12-0.11.0.2.tgz解压至kafka目录
tar -zxvf kafka_2.12-1.0.1.tgz
3.3、修改配置文件
进入到config目录
cd kafka_2.12-1.0.1/config/
修改server.properties配置文件
主要修改:server.properties 这个文件即可,我们可以发现在目录下:
有很多文件,这里可以发现有Zookeeper文件,我们可以根据Kafka内带的zk集群来启动,但是建议使用独立的zk集群
vi server.properties
broker.id=0 #当前机器在集群中的唯一标识,和zookeeper的myid性质一样 listeners=PLAINTEXT://10.202.107.207:9092 num.network.threads=3 #这个是borker进行网络处理的线程数 num.io.threads=8 #这个是borker进行I/O处理的线程数 log.dirs=/usr/dev/kafka/kafka_2.12-1.0.1/logs#消息存放的目录,这个目录可以配置为“,”逗号分割的表达式,上面的num.io.threads要大于这个目录的个数这个目录,如果配置多个目录,新创建的topic他把消息持久化的地方是,当前以逗号分割的目录中,那个分区数最少就放那一个 socket.send.buffer.bytes=102400 #发送缓冲区buffer大小,数据不是一下子就发送的,先回存储到缓冲区了到达一定的大小后在发送,能提高性能 socket.receive.buffer.bytes=102400 #kafka接收缓冲区大小,当数据到达一定大小后在序列化到磁盘 socket.request.max.bytes=104857600 #这个参数是向kafka请求消息或者向kafka发送消息的请请求的最大数,这个值不能超过java的堆栈大小 num.partitions=1 #默认的分区数,一个topic默认1个分区数 log.retention.hours=168 #默认消息的最大持久化时间,168小时,7天 message.max.byte=5242880 #消息保存的最大值5M default.replication.factor=2 #kafka保存消息的副本数,如果一个副本失效了,另一个还可以继续提供服务 replica.fetch.max.bytes=5242880 #取消息的最大直接数 log.segment.bytes=1073741824 #这个参数是:因为kafka的消息是以追加的形式落地到文件,当超过这个值的时候,kafka会新起一个文件 log.retention.check.interval.ms=300000 #每隔300000毫秒去检查上面配置的log失效时间(log.retention.hours=168 ),到目录查看是否有过期的消息如果有,删除 log.cleaner.enable=false #是否启用log压缩,一般不用启用,启用的话可以提高性能 zookeeper.connect=10.202.107.208:2181,10.202.107.207:2181,10.202.107.115:2181 #设置zookeeper的连接端口
上面是参数的解释,实际的修改项为(修改如下三项即可):
broker.id=0 #当前机器在集群中的唯一标识,和zookeeper的myid性质一样 listeners=PLAINTEXT://10.202.107.207:9092 zookeeper.connect=10.202.107.208:2181,10.202.107.207:2181,10.202.107.115:2181 #设置zookeeper的连接端口
将上述修改后的kafka附件包拷贝到其他虚拟机下,修改 server.properties配置文件,修改完配置文件完成集群安装
4、启动并测试
4.1、启动
进入bin目录: cd /usr/dev/kafka/kafka_2.12-1.0.1/bin/ 启动kafka服务: 非守护程序方式启动: ./kafka-server-start.sh /usr/dev/kafka/kafka_2.12-1.0.1/config/server.properties 守护程序方式启动:nohup & nohup ./kafka-server-start.sh /usr/dev/kafka/kafka_2.12-1.0.1/config/server.properties &
4.2、检查服务是否启动
jps
4.3
1、kafka架构 生产者、消费者(组)、zookeeper、broker(组)、主题-->分区-->副本因子 2、主题:创建、修改、删除(标记-设置特殊的属性-server.properties) 3、分区:从主题下进行分区 单独的一个分区内的消息是有序且不可修改 但是多个分区之间的数据是无序 消息怎么知道进入特定的分区?--消息的组成部分key-value 4、复本 复本因子数应当小于等于可用的broker数 leader和follower leader与外界的读写。然后follower云采用拉的方式与leader同步 5、消费组 同一消费组中的消费者应该小于等于所操作主题下的分区数。如果小于的话,最好成位数 6、同步与异步 同步:消息发送给kafka之后,在些等待返回结果 异步:消息先发送到阻塞队列中,通过轮询的方式,将阻塞队列中的消费发送给kafka 回调回来的消息,是由用户(生产者)自己来决定 7、kafka与zookeeper的节点说明 多个broker之间会存在一个controller broker的角色 10.202.107.208:2181,10.202.107.207:2181,10.202.107.115:2181 进入bin目录: cd /usr/dev/kafka/kafka_2.12-1.0.1/bin/ 启动kafka服务: 非守护程序方式启动: ./kafka-server-start.sh /usr/dev/kafka/kafka_2.12-1.0.1/config/server.properties 守护程序方式启动:nohup & nohup ./kafka-server-start.sh /usr/dev/kafka/kafka_2.12-1.0.1/config/server.properties & 停止kafka服务: ./kafka-server-stop.sh 创建Topic ./kafka-topics.sh --create --zookeeper 10.202.107.208:2181,10.202.107.207:2181,10.202.107.115:2181 --topic mytopic --partitions 3 --replication-factor 3 查看Topic信息(会列出分区数、副本数、副本leader节点、副本节点、活着的副本节点) ./kafka-topics.sh --describe --zookeeper 10.202.107.208:2181,10.202.107.207:2181,10.202.107.115:2181 --topic mytopic 列出所有topic: ./kafka-topics.sh --list --zookeeper 10.202.107.208:2181,10.202.107.207:2181,10.202.107.115:2181 将IP为207的kafka停点,测试集群(kill) 创建消费者 ./kafka-console-consumer.sh --zookeeper 10.202.107.208:2181,10.202.107.207:2181,10.202.107.115:2181 --topic mytopic 创建生产者 ./kafka-console-producer.sh --broker-list IP:9092,IP:9092,IP:9092 --topic mytopic 创建topic: bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test 查看topic信息(包括分区、副本情况等): kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic ,会列出分区数、副本数、副本leader节点、副本节点、活着的副本节点 往某topic生产消息: bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 从某topic消费消息: bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning (默认用一个线程消费指定topic的所有分区的数据) 删除某个Kafka groupid:连接Zookeeper后用rmr命令,如删除名为JSI的消费组: rmr /consumers/JSI
相关推荐
hadoop与spark分布式安装
网上Kafka集群搭建的教程很多了,但真正能用的不多,本文提供了详细的步骤说明,绝对可用
这个是我自己根据网上的教程以及自己的经验总结出来的kafka的集群搭建以及测试,亲测可用,如果遇到一些小问题,请上网百度。或者私聊均可,可以给与帮助
kafka分布式集群多服务器和单机部署,需安装zookeeper环境,
Kafka集群搭建1
kafka集群搭建,开启sasl认证,并通过Python调用Producer和Consumer
全网最详细得kafka集群搭建方案
kafka集群的搭建,与使用。详细描述了 卡夫卡中 consumer produer brolers partion 之间的调度关系
zookeeper+kafka集群搭建及安装包
KAFKA集群搭建参考方案,后台分布式服务器框架必备技能
docker容器中搭建kafka集群环境,kafka集群配置注意事项与优化
本地kafka集群搭建zookeeper集群的搭建以docker方式搭建,创建docker-compose.yml文件,内容如下,然后运行docker-comp
搭建kafka集群详细教程搭建kafka集群详细教程搭建kafka集群详细教程
完整的zookeeper+kafka的集群搭建过程包括安装配置命令以及测试
Kafka学习 小白必看 以免走错路 本人也是学习Java的 小白可以关注一下 以后在学习路上可以互相帮助
NULL 博文链接:https://chengjianxiaoxue.iteye.com/blog/2190488
KAFKA集群文档 KAFKA集群文档 KAFKA集群文档 KAFKA集群文档
本文不讲kafka集群原理,只谈部署步骤。 默认读者已对kafka有最基本的认知,纯粹作为部署笔记,方便回忆。 另外本文是基于Windows部署的,Linux的步骤是基本相同的(只是启动脚本位置不同)。 kafka集群类型: ...
搭建基于sasl的安全认证的kafka集群,并配置acl,使用户能分权分域接受发送消息