Apache Storm Fields分组计算

时间:2016-10-11 11:12:47

标签: apache-storm

我在Storm用户组中问了这个问题,还没有得到回复,所以我决定在这里问一下。我找到了代码,并且很多参考了taskIndex的计算方法,但是当我尝试使用以下内容时,我得到的结果与Storm拓扑结果不同。我也看过不止一个帖子,其他人报告的相同。

以下是问题:

您好,

我尝试使用下面的信息来生成哈希,对其进行修改,然后计算正确的消费目标任务索引,但没有成功。我已经在互联网上搜索了一个关于这种性质的手计算的例子,并且已经空了。我必须在手工计算中遗漏一些东西,所以我希望名单上有人可以帮助我。

我的字段分组如下:

    .fieldsGrouping(EXAMPLE_BOLT, EXAMPLE_BOLT_STREAM, new    Fields(TopologyConstants.EXAMPLE_FIELD_GROUPING_ID))

我的EXAMPLE_BOLT如下所示发出:

    collector.emit(TopologyConstants.EXAMPLE_BOLT_STREAM, new Values(EXAMPLE_FIELD_GROUPING_ID_VALUE, EXAMPLE_DATA_INSTANCE));

我执行如下计算:

    int numberOfConsumingTasks = x;
    Integer EXAMPLE_FIELD_GROUPING_ID_VALUE = y;
    ArrayList alist = new ArrayList();
    alist.add(EXAMPLE_FIELD_GROUPING_ID_VALUE);
    int hashCode = Arrays.deepHashCode(alist.toArray());
    int targetTaskIndex = Math.abs(hashCode) % numberOfConsumingTasks;

当我使用拓扑中的实际值时,此计算得到的targetTaskIndex值与Storm生成的值不匹配。 有人能告诉我我做错了什么吗? 谢谢,

奥布里

0 个答案:

没有答案