본문 바로가기

옥탑방주인/Storm

스트림 그룹핑

셔플 그룹핑(Shuffle Grouping) : target 볼트 작업단위들에게 무작위 순서로 튜플이 나누어 준다. 각각의 볼트가 받는 튜플 수는 동일하다.


필드 그룹핑(Field Grouping) : 그룹핑에서 정의한 필드의 값에 따라 튜플이 전달될 볼트가 정해진다. 예를 들어 스트림이 word 필드로 그룹핑되었다면 word필드 값이 동일한 튜플들은 항상 동일한 볼트 작업단위로 전달된다.


올 그룹핑(All Grouping) : 튜플 스트림의 복사본들이 모든 볼트 작업단위로 전달된다. 각각의 작업단위는 튜플의 복사본을 받는다.


글로벌 그룹핑(Global Grouping) : 스트림의 모든 튜플을 단일 작업단위로 전달한다. 이 때 작업단위 아이디 값이 가장 작은 작업단위로 전달한다. 글로벌 그룹핑을 사용하는 볼트의 병렬화 지수를 늘리거나 작업단위의 수를 늘리는 거은 아무런 의미 없는 행동이다. 글로벌 그룹핑은 항상 죔해서 사용해야 한다. 모든 튜플을 단일 JVM 인스턴스에게 전달하기 때문이다. 이는 병목현상을 유발하고 클러스터의 특정 JVM을 작동불가하게 만들수 있다.


넌 그룹핑(None Grouping) : 넌 그룹핑은 기능적으로 셔플 그룹핑과 동일하다. 나중구현을 위해 예약해 두었다.


다이렉트 그룹핑(Direct Grouping) : 소스 스트림이 emitDirect() 메소드를 호출하여 튜플을 내보내고 싶은 컴포넌트를 직접 지정할 수 있다. 다이렉트 스트림으로 선언된 스트림에서만 사용할 수 있다.


로컬 또는 셔플 그룹핑(Local or shuffle Grouping) : 로컬 또는 셔플 그룹핑은 셔플 그룹핑과 비슷하지만, 같은 워커 프로세스에서 동작하는 볼트 작업단위 대상으로만 튜플을 셔플링한다. 그 외 기능은 셔플 그룹핑과 동일하다. 토폴로지의 병렬화 지수에 따라 로컬 또는 셔플 그룹핑은 토폴로지의 성능을 네트워크 전송 한계까지 올릴 수 있다.

'옥탑방주인 > Storm' 카테고리의 다른 글

Ambari Storm Issue  (0) 2018.03.13
Intellij에서 Maven dependency 에러  (0) 2017.07.31