文档章节

Kafka集群安装与扩容

wennan
 wennan
发布于 2014/07/17 16:48
字数 805
阅读 10105
收藏 10
点赞 0
评论 0

介绍略

集群安装:

一.准备工作:

1.版本介绍:

目前我们使用版本为kafka_2.9.2-0.8.1(scala-2.9.2为kafka官方推荐版本,此外还有2.8.2和2.10.2可以选择)

2.环境准备:

安装JDK6,目前使用版本为1.6,并配置JAVA_HOME

3.配置修改:

1)拷贝线上配置到本地kafka目录。

2)需要注意的是server.properties里broker和ip的指定,必须要唯一。

3)server.properties中log.dirs必须要手动指定。此配置项是kafka接收日志的存储目录(目前我们保存7天数据log.retention.hours=168)

4)zookeeper的指定可以是下面这种形式,手动定制zookeeper的目录,并且用逗号分隔ip

zookeeper.connect=1.1.1.1:2181,1.1.1.2:2181,1.1.1.3:2181/kafka-0.8.1 

5)默认分区和备份数分别为10和3(num.partitions=10 / default.replication.factor=3)当然这也可以在创建topic时手动指定。

详细配置介绍项请看链接:kafka配置

4.部署:

目前kafka统一安装在/opt/apps_install/下。

JMX_PORT=9997 bin/kafka-server-start.sh config/server.properties >/dev/null 2>&1 &

部署新节点,然后通过命令启动kafka,JMX_PORT是为了打开kafka的可管理端口(默认不启用)。

5.命令:

常用增删改查命令:kafka基本命令高级命令

6.扩容:

1)先部署好新节点环境,并根据上文"配置修改"修改配置,然后启动集群,确保新节点为可用状态。

2)“高级命令“的Expanding your cluster小节介绍了扩容的基本方法:

  1. 生成扩容使用的json文件:
    cat  topics-to-move.json

    {"topics": [{"topic": "topic1"}],   //加粗部分是要手动指定的topic名称
    "version":1
    }

  2. 通过上一步写好的json文件,使用kafka命令生成数据迁移配置
     bin/kafka-reassign-partitions.sh --topics-to-move-json-file topics-to-move.json --zookeeper 1.1.1.99:2181/kafka-0.8.1 --broker-list "0,1,2,3,4" --generate   //加粗部分是指定数据迁移到那些broker。

  3. 将第一部分保存留作回退备份(即Proposed partition reassignment configuration上面的json串),下面json串为扩容将要使用的到的配置,将其保存为expand-cluster-reassignment.json

  4. 执行扩容命令: bin/kafka-reassign-partitions.sh --zookeeper 1.1.1.99:2181/kafka-0.8.1 --reassignment-json-file expand-cluster-reassignment.json --execute  正常执行的话会生成同上图类似的json串,表示原始状态和目标状态

  5. 查询执行状态: bin/kafka-reassign-partitions.sh --zookeeper 1.1.1.99:2181/kafka-0.8.1 --reassignment-json-file expand-cluster-reassignment.json --verify  正常执行后会返回当前数据迁移的不用partion的,信息状态类似下面

    Reassignment of partition [foo1,0] completed successfully   //移动成功
    Reassignment of partition [foo1,1] is in progress          //这行代表数据在移动中
    Reassignment of partition [foo1,2] is in progress
    Reassignment of partition [foo2,0] completed successfully
    Reassignment of partition [foo2,1] completed successfully 
    Reassignment of partition [foo2,2] completed successfully
  6. 数据迁移一旦开始无法停止,也不要强行停止集群,这样会造成数据不一致,带来无法挽回的后果。

  7. 注意:kafka数据迁移的原理是先拷贝数据到目标节点,然后再删除原节点的数据。这样的话如果集群原节点空间不足,不要继续指定其为迁移broker,这样将造成原节点空间用尽,例如原节点是broker为0,1,2,3,4就不要这样指定 --broker-list "0,1,2,3,4",应该这样 --broker-list "5,6"。
    另外数据迁移也可以通过手工定制。


© 著作权归作者所有

共有 人打赏支持
wennan
粉丝 3
博文 64
码字总数 12653
作品 0
海淀
腾讯云TDSQL审计原理揭秘

版权声明:本文由孙勇福原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/244 来源:腾云阁 https://www.qcloud.com/community 作者简介:孙勇福,腾讯云...

偶素浅小浅 ⋅ 2016/12/11 ⋅ 0

Kafka安装与简介

今天来讲一下Kafka,它是一个消息队列,应用场景比较广泛。刚开始学习一门东西,咱们先不管它是干什么的,先跑起来才是正经,所以本文主要讲两点: 安装搭建Kafka 简单介绍下Kafka的原理和应...

Trigl ⋅ 2017/05/23 ⋅ 0

架构师必备词汇和知识点

01 高可用 负载均衡(负载均衡算法) 反向代理 服务隔离 服务限流 服务降级(自动优雅降级) 失效转移 超时重试(代理超时、容器超时、前端超时、中间件超时、数据库超时、NoSql超时) 回滚机...

t4i2b10X4c22nF6A ⋅ 2017/11/24 ⋅ 0

FastDev/OF.Notify

#OF.Notify 一、项目描述 本项目是希望提供一个高可用、分布式、大容量、高性能、支持动态扩容的消息队列,目前很多的消息队列很多要么是单节点的,要么 是基于数据分片实现的比如kafka,无法...

FastDev ⋅ 2016/05/30 ⋅ 0

apache kafka技术分享系列(目录索引)

目录索引: Kafka使用场景 1.为何使用消息系统 2.我们为何需要搭建ApacheKafka分布式系统 3.消息队列中点对点与发布订阅区别 kafka开发与管理: 1)apachekafka消息服务 2)kafak安装与使用 ...

dannyhe ⋅ 2015/09/06 ⋅ 1

浅谈开源Kafka与腾讯云cKafka

今天下午参加了腾讯云+社区组织的kafka公开课,收获良多。正巧在工作中也遇到过kafka的问题,今天听完之后产生了非常多的感想。无奈篇幅有限,本人又文笔愚钝,所以今天的分享主要提及对我感...

老张的技术 ⋅ 06/19 ⋅ 0

kafka-manager安装与使用

kafka-manager安装与使用 www.blogways.net2018-01-071 阅读 安装kafka 目 录 1 kafka manager简介 2 kafka manager安装 3 kafka manager使用 一、kafka manager简介 为了简化开发者和服务工...

www.blogways.net ⋅ 01/07 ⋅ 0

架构师之路-如何建立高可用消息中间件kafka

Kafka 一、熟悉kafka l Server-1 broker其实就是kafka的server,因为producer和consumer都要去连它。Broker主要还是做存储用。 l Server-2是zookeeper的server端,zookeeper的具体作用你可以...

小红牛 ⋅ 2017/10/09 ⋅ 0

Linux系统Kafka集群搭建与简单测试

Kafka安装 Zookeeper集群搭建,可参考Linux系统Zookeeper集群配置 上传kafka安装包并解压 编辑配置文件 这个是server.properties文件内容 增加集群的配置文件server1.properties 修改配置 增...

Listen_ing ⋅ 2016/06/02 ⋅ 0

Kafka 配置调整方法

在kafka部署完成后,后面还会遇到配置参数调整一系列的调试,关于配置调整方面,kafka做的确实不太友好, 1 创建topics kafka-topics.sh --zookeeper zkhost:port/chroot --create --topic ...

China_OS ⋅ 2015/05/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

005. 深入JVM学习—Java堆内存参数调整

1. JVM整体内存调整图解(调优关键) 实际上每一块子内存区域都会存在一部分可变伸缩区域,其基本流程:如果内存空间不足,则在可变的范围之内扩大内存空间,当一段时间之后,内存空间不紧张...

影狼 ⋅ 26分钟前 ⋅ 0

内存障碍: 软件黑客的硬件视图

此文为笔者近日有幸看到的一则关于计算机底层内存障碍的学术论文,并翻译(机译)而来[自认为翻译的还行],若读者想要英文原版的论文话,给我留言,我发给你。 内存障碍: 软件黑客的硬件视图...

Romane ⋅ 59分钟前 ⋅ 0

SpringCloud 微服务 (七) 服务通信 Feign

壹 继续第(六)篇RestTemplate篇 做到现在,本机上已经有注册中心: eureka, 服务:client、order、product 继续在order中实现通信向product服务,使用Feign方式 下面记录学习和遇到的问题 贰 or...

___大侠 ⋅ 今天 ⋅ 0

gitee、github上issue标签方案

目录 [TOC] issue生命周期 st=>start: 开始e=>end: 结束op0=>operation: 新建issueop1=>operation: 评审issueop2=>operation: 任务负责人执行任务cond1=>condition: 是否通过?op3=>o......

lovewinner ⋅ 今天 ⋅ 0

浅谈mysql的索引设计原则以及常见索引的区别

索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针. 数据库索引的设计原则: 为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索...

屌丝男神 ⋅ 今天 ⋅ 0

String,StringBuilder,StringBuffer三者的区别

这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。 首先说运行速度,或者说是, 1.执行速度 在这方面运行速度快慢为:StringBuilder(线程不安全,可变) > StringBuffer...

时刻在奔跑 ⋅ 今天 ⋅ 0

java以太坊开发 - web3j使用钱包进行转账

首先载入钱包,然后利用账户凭证操作受控交易Transfer进行转账: Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/Credentials credentials = Wallet......

以太坊教程 ⋅ 今天 ⋅ 0

Oracle全文检索配置与实践

Oracle全文检索配置与实践

微小宝 ⋅ 今天 ⋅ 0

mysql的分区和分表

1,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一...

梦梦阁 ⋅ 今天 ⋅ 0

exception.ZuulException: Forwarding error

错误日志 com.netflix.zuul.exception.ZuulException: Forwarding error Caused by: com.netflix.hystrix.exception.HystrixRuntimeException: xxx timed-out and no fallback available. Ca......

jack_peng ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部