Kafka运维
如何在Kafka上创建topic?
手工脚本创建
./kafka-topics.sh –zookeeper 127.0.0.1:2181 –create –topic test.example –replication-factor 2 –partitions 12
- -topic制定topic的name
- –partitions指定分区数,这个参数要根据broker数和数据量决定,一般情况下每个Broker上两个分区最好
- –replication-factor指定partition的replicas数,建议设置为2
自动创建
开启自动创建配置:auto.create.topics.enable=true ,使用程序直接往kafka中相应的topic发送数据,如果topic不存在就会按默认配置进行创建。
如何在Kafka上对一个Topic增加partition?
通过kafka-topics.sh工具的alter命令,将test.example的partitions从12增加到20
./kafka-topics.sh –zookeeper 127.0.0.1:2181 –alter –partitions 20 –topic test.example
如何在Kafka上对一个Topic增加replicas?
操作步骤日下:
- 查看topic的详细信息
./kafka-topics.sh –zookeeper 127.0.0.1:2181 –describe –topic test.example
- 修改配置文件
创建json文件partitions-to-move.json ,修改内容如下:
{
“partitions”:
[
{
“topic”: “test.example”,
“partition”: 0,
“replicas”: [0,4]
}
,version”:1
}
- 执行一下脚本
kafka-reassign-partitions.sh –zookeeper 127.0.0.1:2181 –reassignment-json-file partitions-to-move.json –execute
- 检查修改情况
kafka-topics.sh –zookeeper 127.0.0.1:2181 –describe –topic test.example
如何在Kafka中对Topic的leader进行均衡?
在创建一个topic时,kafka尽量将partition均分在所有的brokers上,并且将replicas也j均分在不同的broker上。每个partitiion的所有replicas叫做"assigned replicas","assigned replicas"中的第一个replicas叫"preferred replica",刚创建的topic一般"preferred replica"是leader。leader replica负责所有的读写。但随着时间推移,broker可能会停机,会导致leader迁移,导致机群的负载不均衡。我们期望对topic的leader进行重新负载均衡,让partition选择"preferred replica"做为leader
- 对所有topic进行操作
./kafka-preferred-replica-election.sh --zookeeper 127.0.0.1:2181
- 对特定的topic操作
编写json文件
{
"partitions":
[
{"topic":"test.example","partition": "0"}
]
}
执行一下脚本
./kafka-preferred-replica-election.sh --zookeeper 127.0.0.1:2181 --path-to-json-file *.json
Kafka下线broker的操作
主动下线是指broker运行正常,因为机器需要运维(升级操作系统,添加磁盘等)而主动停止broker,分两种情况处理:
所有的topic的replica >= 2
此时,直接停止一个broker,会自动触发leader election操作,不过目前leader election是逐个partition进行,等待所有partition完成leader election耗时较长,这样不可服务的时间就比较长。为了缩短不可服务时间窗口,可以主动触发停止broker操作,这样可以逐个partition转移,直到所有partition完成转移,再停止broker。
./kafka-run-class.sh kafka.admin.ShutdownBroker --zookeeper 127.0.0.1:2181 --broker #brokerId# --num.retries 3 --retry.interval.ms 60
shutdown Broker
./kafka-server-stop.sh
存在topic的replica=1
当存在topic的副本数小于2,只能手工把当前broker上这些topic对应的partition转移到其他broker上。当此broker上剩余的topic的replica > 2时,参照上面的处理方法继续处理
Kafka运维的更多相关文章
- Kafka运维大全来了!优化、监控、故障处理
Kafka运维大全来了!优化.监控.故障处理…… Kafka概念 Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一个分布式的 ...
- Kafka运维填坑(转)
前提: 只针对Kafka 0.9.0.1版本; 说是运维,其实偏重于问题解决; 大部分解决方案都是google而来, 我只是作了次搬运工; 有些问题的解决方案未必一定是通用的, 若应用到线上请慎重; ...
- kafka运维填坑
转载自:https://www.jianshu.com/p/d2cbaae38014 前提: 只针对Kafka 0.9.0.1版本; 说是运维,其实偏重于问题解决; 大部分解决方案都是google而来 ...
- 【kafka学习之五】kafka运维:kafka操作日志设置和主题删除
一.操作日志 首先附上kafka 操作日志配置文件:log4j.properties 根据相应的需要设置日志. #日志级别覆盖规则 优先级:ALL < DEBUG < INFO <W ...
- Kafka运维命令大全
1.集群管理 前台启动broker bin/kafka-server-start.sh <path>/server.properties Ctrl + C 关闭 后台启动broker bi ...
- Kafka运维大全来了!优化、监控、故障处理……
Kafka概念 Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一个分布式的.可划分的.冗余备份的.持久性的日志服务.它主 ...
- 运维知识体系v0.5
http://www.90qj.com/?post=318http://ixdba.blog.51cto.com/2895551/1751377 运维知识体系v0.5-(运维社区-赵班长出品,欢迎 ...
- 漫谈ELK在大数据运维中的应用
漫谈ELK在大数据运维中的应用 圈子里关于大数据.云计算相关文章和讨论是越来越多,愈演愈烈.行业内企业也争前恐后,群雄逐鹿.而在大数据时代的运维挑站问题也就日渐突出,任重而道远了.众所周知,大数据平台 ...
- Linux运维企业架构实战系列
Linux运维企业架构项目实战系列 项目实战1-LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2-LVS.nginx实现负载均衡系列 2.1 项目实战2.1-实现基于LVS负载均衡集 ...
随机推荐
- 用java创建UDF,并用于Hive
典型代码如下: 导入UDF类: import org.apache.hadoop.hive.ql.exec.UDF; public class UpperCassUDF extends UDF{ pu ...
- Codeforces 599B. Spongebob and Joke 模拟
B. Spongebob and Joke time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- [Sikuli] Sikuli安装
http://blog.csdn.net/defectfinder/article/details/49819215 1.下载 sikulixsetup-1.1.0.jar (md5, sig) ht ...
- a标签的四个伪类
A标签的css样式 CSS为一些特殊效果准备了特定的工具,我们称之为“伪类”.其中有几项是我们经常用到的,下面我们就详细介绍一下经常用于定义链接样式的四个伪类,它们分别是: :link :v ...
- eclipse代码自动提示,eclipse设置代码自动提示
eclipse代码自动提示,eclipse设置代码自动提示 eclipse是很多JAVA开发者基本上都用的工具,用它可以很方便的开发JAVA代码,当编写JAVA代码时,大部分人都是按组合键[Alt+/ ...
- 一个 图片 滚动 飞入的css特效
@keyframes bounceInLeft { from, 60%, 75%, 90%, to {animation-timing-function: cubic-bezier(0.215, 0. ...
- gj4 深入类和对象
4.1 鸭子类型和多态 当看到一只鸟走起来像鸭子.游永起来像鸭子.叫起来也像鸭子,那么这只鸟就可以被称为鸭子 只要利用Python的魔法函数,就能实现某些Python数据类型的类似的方法. class ...
- HDU 1756 Cupid's Arrow (几何问题,判定点在多边形内部)
题意:中文的么,自己看喽. 析:很容易明白是判定点是不是在多边形内部,一般是向量来判定,我一开始用点在向量的右侧,因为是顺时针给的,只要点全在外侧或边上, 就可以,暴力一下就ok.由于这个是浮点数,一 ...
- Android传感器——加速度传感器
步骤如下: 1. 调用Context的getSystemService(Context.SENSOR_SERVICE)方法获取SensorManager,SensorManager对象代表系统的传感器 ...
- day04(权限修饰符,内部类,局部内部类,匿名内部类)
权限修饰符, Public >protected >default > private public 公共权限 随便都可以访问 protected 子类可以访问权限 (子类 ...