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), ...
随机推荐
- SpringBootServletInitializer报错
1. 现象 从Springboot 1.5.1.RELEASE 升级到Springboot 2.1.2.RELEASE 后SpringBootServletInitializer报错. 2.解决方法 ...
- WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片
原文:WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片 我们知道,在 WPF 中的坐标单位不是屏幕像素单位,所以如果需要知道某个控件的像素尺寸,以便做一些与屏幕像素尺寸相关 ...
- 01、MySQL_简介
数据库概念 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 数据库:存储数据的仓库 数据库分类 网络数据库 网络数据库是指把数据库技术引入到计算机网络系 ...
- 不安全的验证码Insecure CAPTCHA
没啥好讲的,当验证不合格时,通过burp抓包工具修改成符合要求的数据包.修改参数标志位.USER-AGENT之类的参数. 防御 加强验证,Anti-CSRF token机制防御CSRF攻击,利用PDO ...
- 【转载】C#中List集合使用Max()方法查找到最大值
在C#的List集合操作中,有时候需要查找到List集合中的最大值,此时可以使用List集合的扩展方法Max方法,Max方法有2种形式,一种是不带任何参数的形式,适用于一些值类型变量的List集合,另 ...
- 英语dyamaund钻石
dyamaund 英文词汇,中文翻译为金刚石的;镶钻;用钻石装饰 中文名:镶钻;钻石装饰 外文名:dyamaund 目录 释义 dyamaund 读音:[ˈdaɪəmənd, ˈdaɪmənd] ...
- Java服务端口被占用问题
在改code的时候eclipse突然崩溃了,未响应状态等了好久也没转完,只能结束进程了,再次打开eclipse果然无法启动项目.报的错误是端口被占用. 又不想重启电脑,只能记录下微服务下的卡死清理端口 ...
- Redis:Linux安装与使用
Redis的存储结构:字符类型,散列类型,列表类型,集合类型,有序集合. Redis功能: 可以为每个key设置超时时间. 可以通过列表类型来实现分布式队列的操作. 支持发布订阅的消息模式. 为什么使 ...
- WSL quick overview
简介 WSL,是Windows Subsystem for Linux的缩写,字面意义上理解就是WIndows下的Linux子系统.WSL 由Microsoft Windows内核团队创建,目前如果最 ...
- 安装JDK(Windows)
安装JDK java 安装JDK 下载JDK并安装 配置环境变量 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.8.0_144 (jdk安装路径) 变量名: ...