2015-09-05 100 views
0

我读了很多与Storm相关的网站。 但我仍然无法完美地将拓扑映射到风暴集群。Apache风暴 - 带风暴集群的地图拓扑

请帮我理解这一点。

在风暴簇有像

  • 术语主管
  • 工作节点
  • 工人处理器
  • 工人
  • 槽孔
  • 执行器
  • 任务

在拓扑结构中,有

  • 螺栓

也有可能配置

  • numWorkers
  • 并行

所以任何人都请把所有这些东西联系起来帮助我。

我想知道,每个喷嘴/螺栓是行动执行者还是它的任务。 如果给出了并行性提示,那么哪个实体的数量会增加。 如果num工人设置,那个人是谁。

所有这些东西映射与风暴集群。 我已经在一个项目中工作过。所以我知道拓扑结构。

回答

3

物理簇设置:

术语节点通常指的是物理(或VM)在集群中。在每个节点上,主管正在自己的JVM中运行。主管有工人插槽。这是一个逻辑配置,它告诉管理员可以启动多少员工。每个工作人员(如果启动)在自己的JVM中运行(因此,有些人称之为工作进程)。 总结:在一个节点上,有一个超级用户JVM,最多可以有多个工号插槽的工作者JVM。因此,工作JVM正在运行的节点可称为工作节点。当监督员一直在运行时,如果需要,工作人员将启动,即,如果部署了拓扑,并且在拓扑被终止时停止工作。在一名工作人员中,执行者正在作为线程(即,每个执行者映射到自己的线程)运行。

逻辑拓扑设置:

拓扑建立出来的喷口(也称为源,即没有输入数据流运营商)和螺栓(经常运营商具有至少一个输入数据流和任何数量的传出数据流 - 如果没有传出数据流,Bolt也称为sink)。对于每个喷出/博尔特可以配置两个参数:

  1. 任务数
  2. 的DOP(并行度,称为parallelism_hint),也就是说,你想有一个喷口执行人的数量/螺栓

任务是作品的逻辑单位(即被动的东西)。假设您使用fieldsGrouping连接模式。因此,数据流被划分为许多子流的任务数量。任务分配给执行者,即每个执行者处理一个或多个任务。这意味着,你不能比执行者拥有更少的任务(即并行性);否则,会有一个线程没有任何工作要做。

有关更多详细信息,请参阅Storm文档(https://storm.apache.org/documentation/Understanding-the-parallelism-of-a-Storm-topology.html)。此外,关于风暴中的任务/执行者还有许多其他问题。

最后但并非最不重要的一点,您可以将numberOfWorkers配置为拓扑。该参数表示应该开始运行拓扑结构的工作人员数量。拓扑结构的执行者总数是所有Spout/Bolts上的跳数总和。所有执行者将均匀分布在所有可用的工作者JVM上。

此外,单个工作人员只能运行单个拓扑的执行者。这是为了容错原因而完成的,即拓扑彼此隔离。同时,工人本身可以运行任何数量的执行者。