2、kafka集群搭建
以三台为例,先安装一台,然后分发;
一、准备
1、下载
kafka_2.11-2.0.1.tgz
前面的数字2.11是scala的版本,2.0.1是kafka的版本;
2、前提
前提是已经搭建好了zookeeper集群,这里zookeeper也是三台;
二、搭建
1、解压包即可
tar zxf kafka_2.11-0.11.0.0.tgz -C /usr/local/ #也可以改个名字,用mv命令
2、配置
##编辑配置文件
vi /usr/local/kafka/config/server.properties #broker的全局唯一编号,不能重复,依次增长
broker.id=0 #默认值,往kafka里写数据用的端口
port=9092 #删除topic功能使能
delete.topic.enable=true #处理网络请求的线程数量
num.network.threads=3 #用来处理磁盘IO的线程数量
num.io.threads=8 #发送套接字的缓冲区大小
socket.send.buffer.bytes=102400 #接收套接字的缓冲区大小
socket.receive.buffer.bytes=102400 #请求套接字的缓冲区大小
socket.request.max.bytes=104857600 #往kafka写数据,将数据存放的位置
log.dirs=/opt/module/kafka/logs #topic在当前broker上的分区个数
num.partitions=1 #用来恢复和清理data下数据的线程数量
num.recovery.threads.per.data.dir=1 #segment文件保留的最长时间,超时将被删除
log.retention.hours=168 #配置连接Zookeeper集群地址
zookeeper.connect=192.168.1.135:2181,192.168.1.136:2181,192.168.1.137:2181 #连接zookeeper的超时时间
zookeeper.connection.timeout.ms=1000000
3、分发kafka
用scp把kafka拷贝到另外两台主机即可; 唯一区别的,就是server.properties中的broker.id,要设置为1和2
三、启动kafka
1、启动zookeeper集群
2、启动kafka集群
##因为kafka没有启动命令,只能通过脚本启动,可以自己写个脚本,将启动命令包进去
比如,在kafka的bin目录中,写个脚本:startkafka.sh ,kafka的具体路径,根据自己的定;
vim startkafka.sh 内容如下:
KAFKA_PATH="/opt/kafka_2.11-0.10.2.1"
nohup ${KAFKA_PATH}/bin/kafka-server-start.sh ${KAFKA_PATH}/config/server.properties > kafka.log 2>&1 &
##然后分发这个脚本,并赋予权限 ##最后执行这个脚本启动(集群所有主机) ##jps 命令查看
3、部分命令
1、查看当前服务器中的所有topic
[root@spark1 local]# /usr/local/kafka/bin/kafka-topics.sh --zookeeper spark1:2181 --list 2、创建topic
[root@spark1 local]# /usr/local/kafka/bin/kafka-topics.sh --zookeeper spark1:2181 --create --replication-factor 3 --partitions 1 --topic first1
--topic 定义topic名
--replication-factor 定义副本数
--partitions 定义分区数 当前可用kafka的broker为3,当想创建replication-factor为4时,报错:
[root@spark1 local]# /usr/local/kafka/bin/kafka-topics.sh --zookeeper spark1:2181 --create --replication-factor 4 --partitions 1 --topic first2 3、删除topic
[root@spark1 local]# /usr/local/kafka/bin/kafka-topics.sh --zookeeper spark1:2181 --delete --topic first1 需要在server.properties中设置delete.topic.enable=true否则只是标记删除;
标记删除:
当没有设置delete.topic.enable=true时,删除topic是标记删除,需要去数据目录中删除数据文件,然后用命令删除topic,
还要去zookeeper里删除一些元数据:
[zk: localhost:2181(CONNECTED) 1] rmr /brokers/topics/topic名字
[zk: localhost:2181(CONNECTED) 1] rmr /admin/delete_topics/topic名字
4、查看某个topic的详情
[root@spark1 local]# /usr/local/kafka/bin/kafka-topics.sh --zookeeper spark1:2181 --describe --topic first1 5、更多
[root@spark1 local]# /usr/local/kafka/bin/kafka-topics.sh --help 6、生产、消费消息 //生产者:
[root@spark1 local]# /usr/local/kafka/bin/kafka-console-producer.sh --broker-list spark1:9092 --topic first1 hallo kafka //消费者:
[root@spark1 ~]# /usr/local/kafka/bin/kafka-console-consumer.sh --zookeeper spark1:2181 --topic first1 --from-beginning hallo kafka 7、查看producer生产消息的最大位置(一周过期)
./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list spark1:9092 --topic t0425 --time -1
-1表示查询topic各个分区当前最大的消息位移值(这里的位移不是consumer端的位移,而是指消息在每个分区的位置);
如果你要查询曾经生产过的最大消息数,那么只运行上面这条命令然后把各个分区的结果相加就可以了。 但如果你需要查询当前集群中该topic的消息数,那么还需要运行下面这条命令:
./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list spark1:9092 --topic t0425 --time -2
-2表示去获取当前各个分区的最小位移,之后把运行第一条命令的结果与刚刚获取的位移之和相减就是集群中该topic的当前消息总数。
2、kafka集群搭建的更多相关文章
- kafka集群搭建和使用Java写kafka生产者消费者
1 kafka集群搭建 1.zookeeper集群 搭建在110, 111,112 2.kafka使用3个节点110, 111,112 修改配置文件config/server.properties ...
- Kafka【第一篇】Kafka集群搭建
Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户 ...
- kafka学习(三)-kafka集群搭建
kafka集群搭建 下面简单的介绍一下kafka的集群搭建,单个kafka的安装更简单,下面以集群搭建为例子. 我们设置并部署有三个节点的 kafka 集合体,必须在每个节点上遵循下面的步骤来启动 k ...
- Zookeeper + Kafka 集群搭建
第一步:准备 1. 操作系统 CentOS-7-x86_64-Everything-1511 2. 安装包 kafka_2.12-0.10.2.0.tgz zookeeper-3.4.9.tar.gz ...
- 大数据 --> Kafka集群搭建
Kafka集群搭建 下面是以三台机器搭建为例,(扩展到4台以上一样,修改下配置文件即可) 1.下载kafka http://apache.fayea.com/kafka/0.9.0.1/ ,拷贝到三台 ...
- 消息队列kafka集群搭建
linux系统kafka集群搭建(3个节点192.168.204.128.192.168.204.129.192.168.204.130) 本篇文章kafka集群采用外部zookeeper,没采 ...
- [Golang] kafka集群搭建和golang版生产者和消费者
一.kafka集群搭建 至于kafka是什么我都不多做介绍了,网上写的已经非常详尽了. 1. 下载zookeeper https://zookeeper.apache.org/releases.ht ...
- zookeeper及kafka集群搭建
zookeeper及kafka集群搭建 1.有关zookeeper的介绍可参考:http://www.cnblogs.com/wuxl360/p/5817471.html 2.zookeeper安装 ...
- 【转】kafka集群搭建
转:http://www.cnblogs.com/luotianshuai/p/5206662.html Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否 ...
- Kafka 集群搭建 (自用)
Zookeeper集群搭建 1.软件环境 (3台服务器-测试环境) 192.168.56.9 192.168.56.6 192.168.56.7 1.Linux服务器一台.三台.五台.(2*n+1), ...
随机推荐
- 2019年Amazon AWS-Solutions-Architect-Professional考试最新题库(AWS SAP题库)带考试模拟器
大家好,由于最近自己备考Amazon AWS-Solutions-Architect-Professional考试,购买了以下链接的题库,并通过了考试 https://www.kaoguti.gq/A ...
- flask 与 SQLAlchemy的使用
flask 与 SQLAlchemy的使用 安装模块 pip install flask-sqlalchemy 在单个python中与flask使用 # 文件名:manage.py from flas ...
- np.any()基本用法与不一样环境中的用法
import numpy as npa=np.ones((2,3,4))b=np.array([1,2,3])c=b<2k=np.any(c) # 是或的关系,只要有一个满足,则输出为TRUEp ...
- 2019 家居云java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.家居云等公司offer,岗位是Java后端开发,因为发展原因最终选择去了家居云,入职一年时间了,也成为了面试官 ...
- C++ STL vector类型
vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象).vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的.注:vector容器内存放的所有对象都是经过 ...
- iOS完整学习路线
来源:http://www.cnblogs.com/mjios/p/3226954.html
- RTP包的结构
live555中数据的发送最后是要使用RTP协议发送的,下面介绍一下RTP包格式. RTP packet RTP是基于UDP协议的,RTP服务器会通过UDP协议,通常每次会发送一个RTP packet ...
- CentOS 7 使用 firewalld 打开关闭防火墙与端口
1.firewalld的基本使用启动: systemctl start firewalld关闭: systemctl stop firewalld查看状态: systemctl status fire ...
- JS 小工具 MYSQL WHERE IN条件 去掉换行符(列转行)
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- maven学习笔记二(了解maven的基本命令)
maven常用的命令 mvn archetype:create 创建Maven项目 mvn compile 编译源代码 mvn deploy 发布项目 mvn test-compile 编译测试源代码 ...