在风暴中提及任务的相关性是什么
what is the relevence of mentioning no of tasks in storm
我只是想知道 actual relevance of using tasks in storm with respect to the output or performance
是什么,因为它不需要对并行性做任何事情,所以在为一个组件选择超过 1 个任务时 will make any change in output? or what will be the flow than?
或者如果我选择否tasks > executors
这对流程或输出有何影响(这里我只是以基本的字数统计为例)。
如果有人能用或不用例子向我解释这一点,那将非常有帮助。
例如说-
我有一个 topology with 3 bolts and 1 spout
,我只提到了 2 workers port
,这意味着所有这 4 个组件(1 个点和 3 个螺栓将仅在这些工人身上得到 运行)现在我已经提到2 executors for 1st bolt
这意味着如果我提到 no of task=3
how will this make difference whether in output or performance?
,那么在 parallel.Now 中将有 2 个螺栓的螺纹 运行ning
如果我提到了 field grouping
,那么分组将出现在不同的执行者中(如果我错了,请纠正我)?
你读过这篇文章吗? https://storm.apache.org/documentation/Understanding-the-parallelism-of-a-Storm-topology.html
拿起你的例子:如果你设置#tasks=3
并使用fieldsGrouping
指定2 executors
,数据将被分成3个子流(=#tasks)。 2 个子流转到一个执行器,第三个子流转到第二个执行器。但是,使用 3 个任务和 2 个执行程序,允许您使用 rebalance
命令将执行程序的数量增加到 3。
只要不想在执行过程中增加executor的数量,#tasks应该等于#executors(即不指定#tasks即可)
对于您的示例(如果您不想在运行时更改并行度),您很可能会导致两个执行程序的工作负载不平衡(一个执行程序处理了 33% 的数据,另一个执行程序处理了 66%)。但是,这只是这种特殊情况下的问题,而不是一般情况下的问题。如果你假设你有 4 个任务,每个执行者处理 2 个子流并且不会发生不平衡。
我只是想知道 actual relevance of using tasks in storm with respect to the output or performance
是什么,因为它不需要对并行性做任何事情,所以在为一个组件选择超过 1 个任务时 will make any change in output? or what will be the flow than?
或者如果我选择否tasks > executors
这对流程或输出有何影响(这里我只是以基本的字数统计为例)。
如果有人能用或不用例子向我解释这一点,那将非常有帮助。
例如说-
我有一个 topology with 3 bolts and 1 spout
,我只提到了 2 workers port
,这意味着所有这 4 个组件(1 个点和 3 个螺栓将仅在这些工人身上得到 运行)现在我已经提到2 executors for 1st bolt
这意味着如果我提到 no of task=3
how will this make difference whether in output or performance?
,那么在 parallel.Now 中将有 2 个螺栓的螺纹 运行ning
如果我提到了 field grouping
,那么分组将出现在不同的执行者中(如果我错了,请纠正我)?
你读过这篇文章吗? https://storm.apache.org/documentation/Understanding-the-parallelism-of-a-Storm-topology.html
拿起你的例子:如果你设置#tasks=3
并使用fieldsGrouping
指定2 executors
,数据将被分成3个子流(=#tasks)。 2 个子流转到一个执行器,第三个子流转到第二个执行器。但是,使用 3 个任务和 2 个执行程序,允许您使用 rebalance
命令将执行程序的数量增加到 3。
只要不想在执行过程中增加executor的数量,#tasks应该等于#executors(即不指定#tasks即可)
对于您的示例(如果您不想在运行时更改并行度),您很可能会导致两个执行程序的工作负载不平衡(一个执行程序处理了 33% 的数据,另一个执行程序处理了 66%)。但是,这只是这种特殊情况下的问题,而不是一般情况下的问题。如果你假设你有 4 个任务,每个执行者处理 2 个子流并且不会发生不平衡。