- Я использую
fields grouping
со штормом. - Проблема в том, что, поскольку у меня есть несколько машин и несколько болтов (очевидно), тогда
tuple
перемещается между машиной, и я подозреваю, что это резко снижает мою производительность. - Возможно ли, чтобы конкретный результат группировки полей был специфичным для конкретной машины?
- Или более подробно для поля группировки
account1
липких со всеми болтами кmachine1
account2
дляmachine3
дляaccount3
быть липким для всех болтов кmachine1
и так далее для каждогоaccount
, чтобы все его болты, работающих в конкретной одной машине? - Обратите внимание, что, как только первые
bolt
процессы событие он излучаетaccountid
в выходном наборе все дальшеbolts
с этой точки и имеютaccountid
смысл я хочу сделатьfield grouping
с этого момента и наaccountid
для дальнейшегоbolts
вtopology
. (Добавлено для уточнения после просмотра первого ответа)
ответ
может localOrShuffleGrouping помочь? https://github.com/apache/storm/blob/a4f9f8bc5b4ca85de487a0a868e519ddcb94e852/storm-core/src/jvm/org/apache/storm/topology/TopologyBuilder.java#L360
- это детерминированное значение для определенного ключевого 'account1', возможно ли, что на одном кортеже он достигнет« локального болта » а другой - «дистанционный болт», или если он отправит что-то в «локальный болт», он продолжит работу с ним, а для 'account2', если его отправят на« удаленный болт », он продолжит отправку его на тот же самый« удаленный болт » , – Jas
Предположим, у вас есть 3 производителей P1, P2, P3 и три потребителей C1, C2, C3 и 3 машины каждый хостинг один производитель-потребитель-Pair, т.е. P1- С1. Кроме того, предположим, что у вас есть 3 различных значения ключа a,b,c
. Кроме того, предположим, что C1 обрабатывает все кортежи с ключом a
.
В общем, кортежи с ключом a
могут испускаться всеми тремя производителями. Кроме того, P1 также может генерировать кортежи с ключом b
или c
. Таким образом, вы не можете ограничить передачу данных на локальные машины, используя группировку полей, все, что вам нужно, чтобы переразделить все данные.
Расширение
Если у вас есть дополнительные болты B1 до B3, который потребляет данные из С1-С3 и те, используют одни и те же поля, группирования ключ как С1-С3 (т.е. Bx может использовать уже данное разбиение из Cx), вам необходимо убедиться, что B1-B3 расположены на одном компьютере с C1-C3 и избегают повторного разбиения. Совместное размещение может быть достигнуто путем предоставления настраиваемого планировщика для Storm. Смотрите здесь для примера: https://xumingming.sinaapp.com/885/twitter-storm-how-to-develop-a-pluggable-scheduler/
Однако не использования поля группировки для подключения B1-> C1 и т.д., потому что поля-группировка агностик для оператора совместного размещения и уже заданных распределяли данные (это просто снова переформатируйте эти данные). Вместо этого вам нужно будет использовать прямую или настраиваемую группировку, чтобы гарантировать, что все данные из B1 отправляются на C1 и т. Д.
То, что я думал о том, что есть каждая пара '(Px, Cx)' на всех машинах, и в моем случае, как только 'C1' испускает свои результаты, у нее есть' accountid' в этом результате, так что я может теперь и дальше делать 'fields grouping' на этом' accountid' все дальнейшие производители и потребители в этой топологии с этого момента и все будут иметь «учетную запись» в своих результатах, поэтому в этом случае у меня есть «учетная запись» во всех выходах, но первый вывод и планировал иметь все Px, Cx на всех хостах. любой случай, возможно, будет возможен с реализацией «шторма»? – Jas
Я не могу следовать ... Что вы подразумеваете под «наличием каждой пары« (Px, Cx) »на всех машинах»? Я продлил свой ответ (надеюсь, что это касается второй части вашего вопроса - если я правильно вас понимаю) –
- 1. Группировка с несколькими полями Storm
- 2. Storm Supervisors не запускается после перезапуска машины
- 3. Группировка полей формы Zend
- 4. Группировка формула для учета двух полей
- 5. TSQL группировка полей
- 6. Группировка полей для отображения Последние последние
- 7. Соотношение полей и значений в Storm
- 8. Группировка полей в макете сетки
- 9. Группировка полей datetime в кусках
- 10. Группировка нескольких полей в MongoDb
- 11. Группировка полей в ASP.NET MVC
- 12. группировка полей в форме django
- 13. Apache Storm: Вспоминая старое количество полей вывода для носика
- 14. Storm (v0.9.2-incubating) Ошибка запуска супервизора после перезагрузки машины
- 15. Группировка записей в одной строке
- 16. Группировка в SSRS 2008 R2 - группировка и организация полей
- 17. Группировка полей non-cck в Drupal?
- 18. Группировка тех же полей строк в MySQL?
- 19. Группировка по 2 полей в XSL
- 20. Группировка полей ввода HTML в фляге
- 21. Группировка полей, которые частично совпадают в MySQL
- 22. Группировка строк таблицы как набор полей
- 23. Группировка с учетом имен полей счета наоборот
- 24. XSLT2.0 группировка на основе трех полей
- 25. Несколько полей ввода CakePHP для одной колонки
- 26. Solr группировка: могу ли я изменить поведение для отсутствующих полей?
- 27. группировка, необходимая для полей, не являющихся агрегированной ошибкой
- 28. Python Storm ORM, как работать с типами полей времени
- 29. Группировка - нужно отобразить на одной строке
- 30. кластер из лимузинов 2 узла одной машины
http://stackoverflow.com/questions/36368224/is-there-a-way-to-apply-multiple-groupings-in-storm/36374837?noredirect=1#comment60465924_36374837 также обсуждает тот же вопрос. – user2250246