#apache-storm
#apache-storm
Вопрос:
Я задал этот вопрос в группе пользователей Storm и еще не получил ответа, поэтому я решил задать его здесь. Я нашел код и много ссылок на то, как вычисляется taskIndex, но когда я пытаюсь использовать следующее, я не получаю того же результата, что и моя топология Storm. Я также видел более одной публикации, в которой другие сообщают о том же.
Вот в чем вопрос:
Здравствуйте,
Я пытался использовать приведенную ниже информацию для генерации хэша, его модификации и, в свою очередь, вычисления правильного индекса целевой задачи, но безуспешно. Я просмотрел Интернет, чтобы найти пример ручного вычисления такого рода, и оказался пустым. Должно быть, мне чего-то не хватает в моем ручном вычислении, поэтому я надеюсь, что кто-нибудь из списка сможет мне помочь.
У меня есть поля, сгруппированные следующим образом:
.Группировка полей (EXAMPLE_BOLT, EXAMPLE_BOLT_STREAM, новые поля(топология постоянна.EXAMPLE_FIELD_GROUPING_ID))
Мой EXAMPLE_BOLT выдает, как показано здесь:
collector.emit(TopologyConstants.EXAMPLE_BOLT_STREAM, новые значения (EXAMPLE_FIELD_GROUPING_ID_VALUE, EXAMPLE_DATA_INSTANCE));
Я выполняю вычисление следующим образом:
int numberOfConsumingTasks = x; Целочисленный ПРИМЕР_FIELD_GROUPING_ID_VALUE = y; ArrayList alist = новый ArrayList(); alist.add(EXAMPLE_FIELD_GROUPING_ID_VALUE); int hashCode = Arrays.deepHashCode(список.toArray()); int targetTaskIndex = Math.abs(хэш-код) % количество потребляющих задач;
Результирующее значение targetTaskIndex из этого вычисления не соответствует значению, полученному Storm, когда я использую реальные значения из моей топологии. Может кто-нибудь сказать мне, что я делаю не так? Спасибо,
Обри
Комментарии:
1. Я забыл добавить, что я использую Storm 1.0.1.