zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

使用命令进行Apache Kafka操作

ApacheKafka命令 操作 进行 使用
2023-09-14 08:57:38 时间

1.目标

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

使用命令进行Apache Kafka操作

使用命令进行Apache Kafka操作

2.什么是Apache Kafka Operations?

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

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

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

> bin/Kafka-Topics.sh –zookeeper zk_host:port/chroot –create –Topic my_Topic_name
–partitions 20 –replication-factor 3 –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 40

 

为了将数据划分为更小的部分,我们使用分区。我们应该按照以下方式添加配置:
阅读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-1.properties –consumer.config consumer-
2.properties
–producer.config producer.properties –whitelist your-Topic

 

 

即  找到消费者的位置

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

> bin/Kafka-run-class.sh Kafka.tools.ConsumerOffsetChecker –zkconnect localhost:2181 –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”:1
}

 

 

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

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

     


作业:

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

     


此外,重新分配:

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

 

 

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

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

     

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

{“Version”:1,
“Partitions”: [{“Topic”:”top1″,”partition”:2,”replicas”:[1,2]},
{“Topic”:”top1″,”partition”:0,”replicas”:[3,4]},
{“Topic”:”top2″,”partition”:2,”replicas”:[1,2]},
{“Topic”:”top2″,”partition”:0,”replicas”:[3,4]},
{“Topic”:”top1″,”partition”:1,”replicas”:[2,3]},
{“Topic”:”top2″,”partition”:1,”replicas”:[2,3]}]
}

 

  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”:1,
“Partitions”:[{“Topic”:”top1″,”partition”:2,”replicas”:[1,2]},
{“Topic”:”top1″,”partition”:0,”replicas”:[1,2]},
{“Topic”:”top2″,”partition”:2,”replicas”:[1,2]},
{“Topic”:”top2″,”partition”:0,”replicas”:[1,2]},
{“Topic”:”top1″,”partition”:1,”replicas”:[1,2]},
{“Topic”:”top2″,”partition”:1,”replicas”:[1,2]}]
}

 

  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:2181 –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,0] 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主题,区分关闭等等。