文档章节

Kafka 配置调整方法

China_OS
 China_OS
发布于 2015/05/12 11:16
字数 685
阅读 663
收藏 3

在kafka部署完成后,后面还会遇到配置参数调整一系列的调试,关于配置调整方面,kafka做的确实不太友好,

1 创建topics

    kafka-topics.sh --zookeeper zk_host:port/chroot --create --topic my_topic_name --partitions 20 --replication-factor 3 --config x=y


2 修改topics

    kafka-topics.sh --zookeeper zk_host:port/chroot --alter --topic my_topic_name --partitions 40

     增加配置

     kafka-topics.sh --zookeeper zk_host:port/chroot --alter --topic my_topic_name --config x=y

     删除配置

     kafka-topics.sh --zookeeper zk_host:port/chroot --alter --topic my_topic_name --deleteConfig x

     删除topic

     kafka-topics.sh --zookeeper zk_host:port/chroot --delete --topic my_topic_name 该功能还是beta在0.8.1中

    目前kafka还不支持给topic减少partitions和replication

3 停止kafka

  优雅的停止kafka有两个好处:

  1 它会sync它的log到磁盘上,避免下次重启时需要修复log
  2 它会移动partitions leader服务器之前关闭其他副本
 
  sync log是自动发生的,但是控制leadership的迁移需要设置controlled.shutdown.enable=true
 
4 平衡leadership

    kafka-preferred-replica-election.sh --zookeeper zk_host:port/chroot
 
    设置auto.leader.rebalance.enable=true,让这个平衡过程自动执行
 
5 在两个kafka集群间mirror数据
 

6 检查consumer的位置

    kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zkconnect localhost:2181 --group test

7 扩展你的集群

    加入集群是很容易的,只要分配一个唯一的broker id,然后启动kafka进程即可,但是这样并不会自动的分配数据partitions,除非把partitions移动到新的kafka节点上面,或者新建的topics可能把数据partitions分配在新的kafka节点上面,当你把新节点加入集群的时候,你可能会想移动一些存在的数据到该机器上。但这个过程需要手动完成,有三种模式可选:

--generate: In this mode, given a list of topics and a list of brokers, the tool generates a candidate reassignment to move all partitions of the specified topics to the new brokers. This option merely provides a convenient way to generate a partition reassignment plan given a list of topics and target brokers.

--execute: In this mode, the tool kicks off the reassignment of partitions based on the user provided reassignment plan. (using the --reassignment-json-file option). This can either be a custom reassignment plan hand crafted by the admin or provided by using the --generate option

--verify: In this mode, the tool verifies the status of the reassignment for all partitions listed during the last --execute. The status can be either of successfully completed, failed or in progress

     1 编写扩容文件topics-to-move.json

 

{"topics": [{"topic": "foo1"},
            {"topic": "foo2"}],
 "version":1
 }

 

     2 生成数据迁移配置

         kafka-reassign-partitions.sh --zookeeper localhost:2181 --topics-to-move-json-file topics-to-move.json --broker-list "5,6" --generate

     3 执行迁移

         kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file expand-cluster-reassignment.json --execute

     4 查询执行的状态

         kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file expand-cluster-reassignment.json --verify

  8  自定义分区的分配和迁移

     topic foo1 partition0 -->brokers 5 6
     topic foo2 partition1 -->brokers 2 3
 
     1 设置配置文件custom-reassignment.json    

     {"version":1,"partitions":[{"topic":"foo1","partition":0,"replicas":[5,6]},{"topic":"foo2","partition":1,"replicas":[2,3]}]}
 
     2 开始迁移

     kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file custom-reassignment.json --execute

     3 检查

     kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file custom-reassignment.json --verify

 

 

下面介绍两个好工具:

kafka-manage
https://github.com/yahoo/kafka-manager


kafkacat
https://github.com/edenhill/kafkacat

 
 

© 著作权归作者所有

上一篇: FnordMetric 实战
下一篇: Kafka介绍
China_OS
粉丝 428
博文 463
码字总数 520158
作品 0
静安
技术主管
私信 提问
基于Docker搭建分布式消息队列Kafka

本文基于Docker搭建一套单节点的Kafka消息队列,Kafka依赖Zookeeper为其管理集群信息,虽然本例不涉及集群,但是该有的组件都还是会有,典型的kafka分布式架构如下图所示。本例搭建的示例包含...

半夜菊花茶
2017/11/23
0
0
Druid学习笔记(4)数据摄入总结

1. 概述 Druid的数据摄入主要包括两大类: 1. 实时输入摄入:包括Pull,Push两种 - Pull:需要启动一个RealtimeNode节点,通过不同的Firehose摄取不同种类的数据源。 - Push:需要启动Tranquili...

sun7545526
2017/12/13
0
0
Spark Streaming调优 kafka

当使用Spark Streaming的Direct方式接受Kafka数据时, 如果kafka中的数据过多, 会导致spark数据积压, 无法准时完成作业, 甚至OOM。 Spark的运行指标及调优的目标 共两个运行指标:调度延迟...

dreamness
07/11
27
0
kafka开源管理工具Kafka-manager部署

  简介      Kafka-manager是雅虎开源的apache-kafka管理工具,是用Scala写,所以在web页面进行操作即可。   Githubhttps://github.com/yahoo/kafka-manager   主要特性:   1. ...

linux运维菜
2018/04/19
0
0
Spark实战(一)SparkStreaming集成Kafka

Spark Streaming + Kafka集成指南 Kafka项目在版本0.8和0.10之间引入了一个新的消费者API,因此有两个独立的相应Spark Streaming包可用。请选择正确的包, 请注意,0.8集成与后来的0.9和0.1...

FrankDeng
2018/07/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

深入理解表单脚本系列第二篇——表单字段

本文转载于:专业的前端网站➜深入理解表单脚本系列第二篇——表单字段 前面的话   表单字段又叫表单元素,表示表单所包含控件,如<input>、<select>等。本文将详细介绍表单字段的内容 访问...

前端老手
19分钟前
5
0
前端技术之:常用webpack插件

1、html-webpack-plugin Simplifies creation of HTML files to serve your webpack bundles. 主页地址: https://github.com/jantimon/html-webpack-plugin 安装方法: npm i --save-dev h......

popgis
24分钟前
6
0
IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1

HTML5拥有多个新的表单输入类型,这些新特性提供了更好的输入控制和验证。并不是所有的主浏览器都支持新的input类型,不过我们可以在所有的主浏览器中使用它们,即使不被支持,仍然可以显示为...

老码农的一亩三分地
25分钟前
5
0
规则引擎

解决问题 版本迭代速度更不上业务变化,但是若多个业务同时变化,除了为每个业务设计专属配置项也不利于操作。就想服务接口单纯化,将复杂多变的业务逻辑交给规则引擎,让用户在web端或cs端自...

无极之岚
今天
7
0
OSChina 周三乱弹 —— 欢迎你来做产品经理

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :10多次劲歌金曲获奖,更多叱咤歌坛排名,黎明才应该是四大天王之首,只可惜拍的电影太少。单曲循环一个多月的歌,力荐 《无名份的...

小小编辑
今天
803
11

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部