Kafka 0.8.2 中是否可以向现有主题添加分区

2024-05-04

我有一个Kafka https://kafka.apache.org/集群运行有 2 个分区。我一直在寻找一种将分区计数增加到 3 的方法。但是,我不想丢失有关该主题的现有消息。我尝试停下来Kafka https://kafka.apache.org/,修改server.properties文件将分区数量增加到 3 并重新启动 Kafka。然而,这似乎并没有改变任何事情。使用卡夫卡ConsumerOffsetChecker,我仍然看到它只使用 2 个分区。这Kafka https://kafka.apache.org/我使用的版本是0.8.2.2。在0.8.1版本中,曾经有一个脚本叫做kafka-add-partitions.sh,我想这可能会起作用。然而,我在 0.8.2 中没有看到任何这样的脚本。

  • 有什么方法可以实现这一点吗?

我确实尝试过创建一个全新的主题,对于这个主题,它似乎确实根据 中的更改使用了 3 个分区server.properties文件。然而,对于现有的话题,它似乎并不在意。


看起来你可以使用this https://kafka.apache.org/documentation.html改为脚本:

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

在代码中看起来他们做了同样的事情:

 AdminUtils.createOrUpdateTopicPartitionAssignmentPathInZK(topic, partitionReplicaList, zkClient, true)

kafka-topics.sh执行this https://github.com/apache/kafka/blob/0.8.2/core/src/main/scala/kafka/admin/AdminUtils.scala#LC133一段代码以及添加分区命令 https://github.com/apache/kafka/blob/0.8/core/src/main/scala/kafka/admin/AddPartitionsCommand.scala由 kafka-add-partition 脚本使用。

但是,使用 key 时必须注意重新分区:

请注意,分区的一种用例是语义分区 数据,以及添加分区不会更改现有数据的分区因此,如果消费者依赖这一点,这可能会打扰他们 分割。也就是说,如果数据按以下方式分区hash(key) % number_of_partitions那么这个分区可能是 通过添加分区进行混洗,但 Kafka 不会尝试这样做 以任何方式自动重新分配数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kafka 0.8.2 中是否可以向现有主题添加分区 的相关文章

随机推荐

  • 用以前的非缺失值填充“缺失”值的有效方法是什么?

    我有一个向量 using Missings v allowmissing rand 100 v rand 100 lt 0 1 missing 最好的填充方式是什么v与最后一个非缺失值 现在 for i val in enumerate v
  • pandas:qcut错误:ValueError:Bin边缘必须是唯一的:

    我正在尝试使用 pandas qcut 方法计算两列的百分位数 如下所示 my df float col quantile pd qcut my df float col 100 labels False my df int col qua
  • Visual Studio 项目的依赖关系图

    我目前正在将一个大型解决方案 约 70 个项目 从 VS 2005 NET 2 0 迁移到 VS 2008 NET 3 5 目前我有 VS 2008 NET 2 0 问题是我需要将项目一一移动到新的 NET 框架 确保没有 NET 2 0
  • 在 iOS 9 上,所有 uitableviewcell 的高度都变成一行

    我有一个带有多个 UITableView 控制器的应用程序 在 iOS 8 x 上运行 每个表格中所有单元格的高度将调整大小以适合单元格的内容 所有单元格仅包含纯文本的 UILabel 现在 在 iOS 9 上运行时 每个表格上的每个单元格
  • Java - 线程“主”中的异常 java.util.ConcurrentModificationException

    有什么办法可以修改HashMap迭代特定键时的值 下面给出一个示例程序 public static void main String args HashMap
  • javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringApplication

    我开发了一个 Spring boot 应用程序 该应用程序的功能运行良好 但是 在启动时 我多次看到以下异常 当我几周前运行相同的应用程序时 我没有看到任何此类异常 此后代码库没有改变 我想知道它是否与环境有关 我发帖的原因是我想更多地了解
  • 能够删除特定约束的增量 SMT 求解器

    是否有增量 SMT 求解器或用于某些增量 SMT 求解器的 API 我可以在其中增量添加约束 在其中我可以通过某个标签 名称唯一地标识每个约束 我想唯一地标识约束的原因是这样我可以稍后通过指定标签 名称来删除它们 需要放弃约束是因为我之前的
  • 对 Qsort 和指针感到困惑

    我是一名 C 初学者程序员 想要习惯术语和指针 我在寻找对数值数组元素进行排序的方法时发现了以下工作函数原型 该函数是 qsort 它使用指针 现在我的理解是 const 一词确保值 a 和 b 不变 但指针不变 如果我在这里错了 请纠正我
  • Xcode 4.6.2 应用程序每秒运行一次就会崩溃

    Xcode 4 6 2 似乎有很多 bug 当我第二次跑步时any项目我在第一秒内就发生 SIGABRT 崩溃 我完全删除了 Xcode 并重新安装 是的 我尝试关闭然后再次打开 我还删除了命令行工具和模拟器 但这也没有帮助 好的 我找到了
  • 使用 Volley 时出现 SSL 异常

    我在 Android 中使用 Volley 来执行我的应用程序请求 不幸的是 我收到以下错误 com android volley NoConnectionError javax net ssl SSLHandshakeException
  • #pragma 指令是否依赖于编译器?

    我知道并且我用过 pragma startup and pragma exit之前 但当我执行以下代码时 它仅输出In main 谁能告诉我这里发生了什么事 include
  • XPCOM是什么? XPCOM 与 COM?

    我无法理解 XPCOM 它与 COM 有什么不同 是什么让它跨平台 它是一个包含一组可用于完成某些工作的库的框架吗 另外 组件对象模型是否意味着每个功能都在组件中实现 因此我们可以在不知道详细实现的情况下使用它 你能帮我理解这一点吗 谢谢
  • 为什么向列表<>添加新值会覆盖列表<>中以前的值

    我本质上是试图将多个项目添加到列表中 但最后所有项目的值都等于最后一个项目 public class Tag public string TagName get set List
  • Java 6 内存使用过多

    对于大型应用程序 Java 6 消耗的内存是否比您预期的要多 我有一个已经开发多年的应用程序 到目前为止 在我的特定测试配置中 该应用程序占用了大约 30 40 MB 的空间 现在 对于 Java 6u10 和 11 活动时需要数百个时间
  • 如果 POST 成功但没有创建任何新内容,我们应该返回什么状态代码?

    我们有一个端点 当您发布创建新版本的资源时 它会返回 201 和新创建的资源的位置 它根据当前版本和发布的版本 使用类似 semver 的规则集 的比较来确定新版本号 如果您发布的版本与现有版本相同 则不会更新版本号 在这种情况下我们应该返
  • Windows 10 上具有 kernel32.dll 的 Dependency Walker

    我尝试打开kernel32 dll在 Windows 10 上使用 Dependency Walker 我收到以下错误和警告 错误 未找到至少一个所需的隐式或转发依赖项 警告 至少未找到一个延迟加载依赖模块 Screenshot 我运行的是
  • 强制 Scala 特征实现某种方法

    有没有办法指定特征必须提供方法的具体实现 给定一些 mixin class A extends B with C foo 如果出现以下任一情况 程序将编译A B or C实施foo 但是我们如何才能强制 例如 B包含装有foo的实施 您可以
  • 装饰器错误:NoneType 对象不可调用

    我写了一个这样的函数装饰器 def tsfunc func def wrappedFunc print s called func name return func return wrappedFunc tsfunc def foo pas
  • Android 多点触控:ACTION_UP 并不总是被调用?

    我开发了一个在视图中处理多点触控的 Android 应用程序 我基本上跟踪可能发生的几个 MotionEvent 例如 ACTION UP ACTION MOVE 我在 View 类中覆盖的 onTouch 方法如下所示 public bo
  • Kafka 0.8.2 中是否可以向现有主题添加分区

    我有一个Kafka https kafka apache org 集群运行有 2 个分区 我一直在寻找一种将分区计数增加到 3 的方法 但是 我不想丢失有关该主题的现有消息 我尝试停下来Kafka https kafka apache or