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), ...
随机推荐
- Redis主从架构搭建和哨兵模式(四)
一主一从,往主节点去写,在从节点去读,可以读到,主从架构就搭建成功了 1.启用复制,部署slave node wget http://downloads.sourceforge.net/tcl/tcl ...
- Hadoop—MapReduce计算气象温度
Hadoop-MapReduce计算气象温度 1 运行环境说明 1.1 硬软件环境 主机操作系统:Mac OS 64 bit ,8G内存 虚拟软件:Parallers Desktop12 虚拟机操作系 ...
- 【MySQL】数据库中间件Atlas
1.介绍 Atlas 是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目.它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改 ...
- python检测远程udp端口是否打开的代码
研发过程,把开发过程较好的代码收藏起来,如下的代码内容是关于python检测远程udp端口是否打开的代码,希望对各朋友有较大帮助. import socketimport threadingimpor ...
- ResourceDictionary文件排序方法
默认生成的ResourceDictionary文件是根据主键的hashcode排序生成的,如果想按主键排序生成是不可能的. 可以使用Xml的处理方法来生成ResourceDictionary文件. 1 ...
- MySQL Replication--复制延迟03--Seconds_Behind_Master计算
Seconds_Behind_Master计算原理 当从库上复制IO进程和复制SQL进程正常运行,且SQL线程处于执行状态而非等待IO进程同步BINLOG时,复制延迟时间计算如下: 复制延迟时间(Se ...
- JS正则表达式提取数字
/** * [参数str] * @type {var String} * return 30 */ var str = "ren民BI30kuai" console.log(str ...
- JVM——垃圾回收资格的判定
一:判断一个对象是否已死 1:引用数算法:给对象加个引用计数器,被引用时加一,引用失效减一,在任何时刻一直为0的就说明不会被使用,但是由于一种情况的存在,导致这种算法不被JVM所考虑,在两个对象相互引 ...
- 8.7 —— 排序函数及 splice 插入
.排序,按自己的逻辑 nid_item_vec.sort([](const NID_PBDATA &l, const NID_PBDATA &r) -> bool { retur ...
- Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)-C. Magic Grid-构造
Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)-C. Magic Grid-构造 [Problem Descripti ...