1.目标

我们可以在Kafka集群上执行几个Apache Kafka Operations 。因此,在本文中,我们将详细讨论所有Apache Kafka操作。它还包括有助于实现这些Kafka操作的命令。
所以,让我们详细讨论所有Kafka Operations。

使用命令进行Apache Kafka操作

2.什么是Apache Kafka Operations?

下面,我们正在讨论卡夫卡的运作,让我们逐一看到它们:

一个。添加和删​​除Kafka主题

我们可以自动和手动添加和删除Kafka主题。添加的命令将是:

> bin/Kafka-Topics.sh –zookeeper zk_host:port/chroot –create –Topic my_Topic_name
–partitions –replication-factor –config x=y
 

此外,Kafka Brokers是由服务器编写和复制的消息。但是,通过复制因子,完成了整个复制过程。尽管如此,请确保标准复制因子应为2或3,以便在没有任何障碍的情况下进行弹跳。
主题分为多个日志,分区计数控制它。但是,分区计数包含以下功能,例如它们应该单独放在一台服务器上。因此,通过这种方式,总共50个分区将产生50个服务器。此外,分区在消费者之间获得最大均衡。基本上,添加主题会覆盖默认设置。

湾 如何修改Kafka主题

我们可以通过添加和删除上下文来最好地修改主题。要添加分区,命令是 -

> bin/Kafka-Topics.sh –zookeeper zk_host:port/chroot –alter –Topic my_Topic_name
–partitions

为了将数据划分为更小的部分,我们使用分区。我们应该按照以下方式添加配置:
阅读Apache Kafka Workflow | Kafka Pub-Sub Messaging

  1. > bin/Kafka-Topics.sh –zookeeper zk_host:port/chroot –alter –Topic my_Topic_name –config x=y

为了删除配置:

  1. > bin/Kafka-Topics.sh –zookeeper zk_host:port/chroot –alter –Topic my_Topic_name –deleteConfig x

另外,要删除整个主题,

  1. > bin/Kafka-Topics.sh –zookeeper zk_host:port/chroot –delete –Topic my_Topic_name

C。杰出的岔路

如果任何Kafka Broker关闭或失败并选择新的分区领导者,Kafka集群将自动检测。但是,如果服务器出现故障或故意将其关闭以进行维护,则会发生这种情况。此外,Kafka支持更优雅的机制来停止服务器,而不仅仅是为了配置更改而销毁服务器。此外,当我们以优雅的方式减少服务器时,它有两个优化:

  1. 群集将自动检测它,不负责任,Kafka代理是否失败或损坏,如果任何服务器发生故障,它也可以精美地关闭服务器。
  2. 如果完成,则删除日志恢复的需要,因此进程变得更快。此外,它会在关闭之前将该服务器的所有分区发送到其副本。

d。 在Kafka集群之间镜像数据

镜像过程从源读取材料并写入目标。基本上,这个镜像复制了源代码。然后,将其写在目的地上。
了解Kafka性能调优 - Kafka优化的方法
为了保持流程的稳定性,Mirroring可以提高吞吐量。此外,我们可以使用很多。它将数据从集群传输到集群。但是,请确保源群集和目标群集彼此几乎不同。
基本上,镜子制造商对两者都是一样的。因为镜像后的目标群集数据与镜像之前源群集包含的数据相同。尽管由于其数据复制和不同的偏移和分区,使用不同的地址,两个名称在两个集群中都是相同的。
因此,它提供较少的容错能力,因为镜像集群将复制具有不同地址的消费者中的数据。但是,我们应该使用正常的群集内复制,以获得更多的容错能力。
要从两个输入镜像名为your-Topic的单个主题,该命令为:

> bin/Kafka-run-class.sh Kafka.tools.MirrorMaker
–consumer.config consumer-.properties –consumer.config consumer-
.properties
–producer.config producer.properties –whitelist your-Topic
 

即  找到消费者的位置

找出消费者的立场非常重要。因此,为了找出消费者的位置,命令是:

> bin/Kafka-run-class.sh Kafka.tools.ConsumerOffsetChecker –zkconnect localhost: –group test
 

F。扩展您的Kafka群集

通过添加具有新ID的服务器,我们可以随时向集群添加新服务器。此外,我们使用新服务器启动它们。但是除非将分区分配给这些新服务器,否则它们将完全不起作用并且理想地坐下来。因此,现有的需要稍微改变它们的位置,以添加新的位置。
探索Apache Kafka Producer for Beginners
因此,自动将数据移到封面后面。现在,我们必须添加新服务器。但它的位置必须落后于寻求迁移的分区。因此,新引入的服务器在迁移分区后面。此外,迁移分区中的所有数据都将复制到服务器。最终,分区被踢出。
基本上,我们通过3种方式运行这个分区重新分配:
-generate:
将所有主题分配给新服务器非常重要。因此,要在迁移之前将所有分区移动到新服务器,此工具将创建重新分配工具。
-execute:
执行时,该工具在执行计划中按用户的计划启动主题的重新分配。
-verify:
一旦重新分配完成,此工具将验证。该工具还可以讲述状态。它可以完成,正在进行,完成或即使失败也可以。

G。 自动迁移数据

基本上,重新分配工具将主题从当前服务器分配给新服务器。但是,为了移动整个主题而不是移动它的一部分,它会扩展分区。因此,要移动主题的服务器列表包含在单个列表和另一个要从中传输主题的服务器列表中。
此外,从旧服务器到新服务器的Kafka主题通过重新分配工具传输进行传输,并且所有副本也会传输到新服务器,从而保持镜像均匀。
我们来讨论Apache Kafka Streams | 流处理拓扑
首先,要保存主题,请创建JSON文件。创建此文件是:

> cat Topics-to-move.json
{“Topics”: [{“Topic”: “top1”},
{“Topic”: “top2”}],
“version”:
}
 

top1和top2是主题。
生成JSON文件后引入赋值:

  1. > bin/Kafka-reassign-partitions.sh –zookeeper localhost: –Topics-to-move-json-file Topics-to-move.json –broker-list “,” –generate

作业:

  1. {“version”:,
    “partitions”:[{“Topic”:”top1″,”partition”:,”replicas”:[,]},
    {“Topic”:”top1″,”partition”:,”replicas”:[,]},
    {“Topic”:”top2″,”partition”:,”replicas”:[,]},
    {“Topic”:”top2″,”partition”:,”replicas”:[,]},
    {“Topic”:”top1″,”partition”:,”replicas”:[,]},
    {“Topic”:”top2″,”partition”:,”replicas”:[,]}]
    }

此外,重新分配:

{“Version”:,
“Partitions”:[{“Topic”:”top1″,”partition”:,”replicas”: [,] } ,
{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]},
{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]}]
}
 

因此,我们将所有分区从主题top1,top2移动到服务器1和2.但是,请确保保存新分配。然后将所有主题top1top2移动到新服务器5和6将很容易。通过这种方式,我们知道实际需要从哪个服务器移动到哪个服务器。
因此,在JSON文件中,将保存主题的新位置。此外,保存主题的当前位置以保留备份,以防我们真的想要将主题带回其旧服务器。
命令是:

  1. > bin/Kafka-reassign-partitions.sh –zookeeper localhost: –reassignment-json-file expand-cluster-reassignment.json –execute

现在,副本分配给现在的副本:

{“Version”:,
“Partitions”: [{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]},
{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]}]
}
  1. { “版本”:1 ,
  2. “分区”:[ { “主题”:” TOP1“,”分区”:2 “,副本”:[ 1 ,2 ] } ,
  3. { “主题”:” TOP1“,”分区”:0 ,”副本”:[ 3 ,4 ] } ,
  4. { “主题”:” TOP2“,”分区”:2 “,副本”:[ 1 ,2 ] } ,
  5. { “主题”:” TOP2“,”分区”:0 ,”副本”:[ 3 ,4 ] } ,
  6. { “主题”:” TOP1“,”分区”:1 ,”副本”:[ 2 ,3 ] } ,
  7. { “主题”:” TOP2“,”分区”:1 ,”副本”:[ 2 ,3 ] } ]
  8. }

为了重新分配分区:

{“Version”:,
“Partitions”:[{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]},
{“Topic”:”top1″,”partition”:,”replicas”:[,]},
{“Topic”:”top2″,”partition”:,”replicas”:[,]}]
}
  1. { “版本”:1 ,
  2. “分区”:[ { “主题”:” TOP1“,”分区”:2 “,副本”:[ 1 ,2 ] } ,
  3. { “主题”:” TOP1“,”分区”:0 ,”副本”:[ 1 ,2 ] } ,
  4. { “主题”:” TOP2“,”分区”:2 “,副本”:[ 1 ,2 ] } ,
  5. { “主题”:” TOP2“,”分区”:0 ,”副本”:[ 1 ,2 ] } ,
  6. { “主题”:” TOP1“,”分区”:1 ,”副本”:[ 1 ,2 ] } ,
  7. { “主题”:” TOP2“,”分区”:1 ,”副本”:[ 1 ,2 ] } ]
  8. }

此外,要验证重新分配的过程是否完美,请使用以下命令:

> bin/Kafka-reassign-partitions.sh –zookeeper localhost: –reassignment-json-file expand-cluster-reassignment.json –verify
  1. > bin / Kafka-reassign-partitions.sh -zookeeper localhost:2181 -reassignment-json-file expand-cluster-reassignment.json -verify

以下是验证输出:

Reassignment of partition [top1,] completed successfully
  1. 分区的重新分配[ TOP1,0 ] 成功完成

分区[top1,1]的重新分配已成功完成分区[top1,2]的重新分配已成功完成分区[top2,0]的重新分配正在进行分区[top2,1]的重新分配已成功完成分区[top2,2]的重新分配进行中。
为了分配,我们可以为新服务器选择一定数量的分区,而不是移动整个分区集。此外,我们必须直接进入执行步骤。
让我们学习Apache Kafka + Spark Streaming Integration

H。 退休服务器

有时很少有服务器处于停用状态。然后,我们需要从退休服务器中删除主题到新服务器。虽然为了帮助这个过程,新工具的生成仍在进行中。

一世。 数据中心

为了维护操作,我们使用数据中心。基本上,他们管理数据管道。我们正在与一些本地集群一起运营,因此,数据中心直接与Kafka中最近的集群进行通信。
基本上,数据中心独立工作。因此,我们可以说这些数据中心可以独立工作,即使中间链接被破坏,也能最好地运行。另外,请记住,内部链接的失败会导致镜像过程失败。而且,只有当链接再次被重新开发时,它才会回到它的实际位置。
此外,在主题中,一些数据中心要求查看完整的数据集。在这种情况下,开始镜像数据集群以显示给新数据中心。然后,这些镜像数据被累积到数据集群,当我们需要应用程序完整读取完整数据时,我们可以读取这些数据集群。
阅读Apache Kafka Security | Kafka的需求和组件
要获得群集,此部署模式非常合适,可以保证延迟。与其他更简单的消息传递工具相比,Kafka工具提供了更高的吞吐量,即使是高延迟。这是因为Kafka在两侧(即来源和目的地)批量处理数据。这里,来源是指生产者,而目的地是指消费者。
此外,请确保防止使用高延迟链接,这将为Kafka技术的写入行为带来高延迟。因此,如果网络出现问题,Kafka将无法在所有位置使用。
所以,这完全是关于卡夫卡运营的。希望你喜欢我们的解释。

3.结论:卡夫卡行动

因此,我们已经详细了解了所有Apache Kafka Operations。我们讨论了不同的Kafka操作,例如添加和删除Kafka主题,修改Kafka主题,区分关闭等等。

使用命令进行Apache Kafka操作的更多相关文章

  1. Kafka-Docker:使用Docker运行Apache Kafka的步骤

    1.目标 在这个Kafka教程中,我们将学习Kafka-Docker的概念.此外,我们将在Kafka中看到Docker的卸载过程.这包括使用Docker 运行Apache Kafka的所有步骤  .除 ...

  2. 使用JMeter进行Apache Kafka负载测试

    1.卡夫卡负载测试 在这个Apache Kafka教程中,我们将了解如何使用Apache JMeter,如何在Apache Kafka上执行Kafka负载测试.此外,这个Kafka负载测试教程教我们如 ...

  3. Apache Kafka Consumer 消费者集

    1.目标 在我们的上一篇文章中,我们讨论了Kafka Producer.今天,我们将讨论Kafka Consumer.首先,我们将看到什么是Kafka Consumer和Kafka Consumer的 ...

  4. Apache Kafka用例

    1.目标 在我们上一篇Kafka教程中,我们讨论了Kafka Pros and Cons.今天,在这篇Kafka文章中,我们将讨论Apache Kafka用例和Kafka应用程序.Kafka是新数据堆 ...

  5. JMeter进行Apache Kafka负载测试

    1.卡夫卡负载测试 在这个Apache Kafka教程中,我们将了解如何使用Apache JMeter,如何在Apache Kafka上执行Kafka负载测试.此外,这个Kafka负载测试教程教我们如 ...

  6. 顶级Apache Kafka术语和概念

    1.卡夫卡术语 基本上,Kafka架构  包含很少的关键术语,如主题,制作人,消费者, 经纪人等等.要详细了解Apache Kafka,我们必须首先理解这些关键术语.因此,在本文“Kafka术语”中, ...

  7. 为什么Apache Kafka如此受欢迎

    1.目标 今天,在这个Kafka教程中,我们将学习所有Kafka功能,如可扩展性,可靠性,耐用性,这些都说明了Kafka如此受欢迎的原因.我们将详细讨论Kafka的每个功能.但在那之前让我们明白什么是 ...

  8. Apache Kafka简介与安装(二)

    Kafka在Windows环境上安装与运行 简介 Apache kafka 是一个分布式的基于push-subscribe的消息系统,它具备快速.可扩展.可持久化的特点.它现在是Apache旗下的一个 ...

  9. DataPipeline |《Apache Kafka实战》作者胡夕:Apache Kafka监控与调优

    胡夕 <Apache Kafka实战>作者,北航计算机硕士毕业,现任某互金公司计算平台总监,曾就职于IBM.搜狗.微博等公司.国内活跃的Kafka代码贡献者. 前言 虽然目前Apache ...

随机推荐

  1. if语句的嵌套:从键盘输入3个实数,求其最大值。

    #include<stdio.h>void main(){ float a,b,c,max; scanf("%f%f%f",&a,&b,&c); ...

  2. JavaScript基础05——严格模式

    严格模式: 除了正常运行模式,ECMAscript5添加了第二种运行模式:“严格模式”(strict mode).顾名思义,这种模式是的Javascript在更严格的条件下运行. 严格模式的作用: 1 ...

  3. JavaScript基础03——函数的作用域及变量提升

    1.作用域 作用域,变量在函数内部作用的范围/区域.有函数的地方就有作用域.   2.局部作用域和全局作用域 function fn(){ var a = 1; } console.log(a); / ...

  4. MuPAD使用总结

    MuPAD使用总结 一.打开notebook界面的方法: 二.notebook界面的三种区域 (一).输入区域 输入区域在打开来的时候就有,就是,但是之后如果还想再加,可以点击上方红色框内的图标. 这 ...

  5. Java 堆栈内存的理解

    Java中变量在内存中的分配1). 类变量(static修饰的变量):在程序加载时系统就为它在堆中开辟了内存,堆中的内存地址存放于栈以便高速访问.静态变量的生命周期—一直持续到整个“系统”关闭 2). ...

  6. 测试Leader应该做哪些事

    一.负责测试组的工作组织和管理 1.参加软件产品开发前的需求调研和分析: 2.根据需求,概要设计和开发计划编写项目总体测试计划,详细测试计划,测试大纲和测试文档结构表(测试计划 a.已上线产品维护以及 ...

  7. UVA 12299 RMQ with shifts

    就是线段树的单点修改和区间查询. 然而输入打了一个小时才弄清楚. #include<iostream> #include<cstdio> #include<cstring ...

  8. 【0521模拟赛】小Z爱数学

    题目描述 小Z想求F(n,k),F(n,k)表示n的所有因数pi中,满足n/pi <= k 的和. 小Z发现还是很水,所以他决定加大难度. 求 小Z还准备了很多个询问.现在你来解决一下吧. 输入 ...

  9. SpringSecurity的简单入门

    以下是大体思路 1.导入坐标 <properties> <spring.version>4.2.4.RELEASE</spring.version> </pr ...

  10. Hadoop(三)—— YARN

    YARN产生的背景 Hadoop相关概念 Hadoop 1.0 由HDFS.MapReduce组成. Hadoop 2.0 克服1.0中HDFS和MapReduce存在的各种问题而提出的. YARN是 ...