Language
한국어

하둡과 비슷한 mapreduce 대신 토폴로지로 처리하는 분산 처리 시스템


clojure로 만들었다고 하는데, 좀 더 자료 조사 필요.


zookeeper 까지 세팅 되었다면 어렵지 않게 연동 가능하다.(http://jdm.kr/blog/218, https://www.tutorialspoint.com/apache_storm/apache_storm_installation.htm)


# wget http://apache.mirror.cdnetworks.com/storm/apache-storm-1.1.3/apache-storm-1.1.3.tar.gz

# tar xfvz apache-storm-1.1.3.tar.gz

# cd apache-storm-1.1.3

# cd conf

# vi storm.yaml

 storm.zookeeper.servers:

     - "localhost"

 storm.zookeeper.port: 2184

 nimbus.seeds: ["localhost"]

 supervisor.slots.ports:

  - 6700

  - 6701

  - 6702

  - 6703


zookeeper의 포토를 기본포트(2181)에서 바꾸었다면, storm.zookeeper.port 옵션을 추가한다.

* https://github.com/apache/storm/blob/master/conf/defaults.yaml


# ../bin/strom nimbus &

# ../bin/strom supervisor &
# ../bin/strom ui &

storm.jpg

Nimbus(구름을 뜻하도록 네이밍한 것 같다. 폭풍을 일으키는 구름, 폭풍처럼 처리하는 녀석)
Nimbus는 마스터 노드로 주요 설정 정보를 가지고 있으며, 이 Nimbus 노드를 통해서 프로그래밍 된 토폴로지를 Supervisor 노드로 배포한다. 일종의 중앙 컨트롤러로 생각하면 된다. Storm에서는 중앙의 하나의 Nimbus 노드만을 유지한다.

Supervisor(여기서 부터는 이름 짓기 귀찮아서 걍 관리자?)
Supervisor 노드는 실제 워커 노드로, Nimbus로 부터 프로그램을 배포 받아서 탑재하고, Nimbus로 부터 배정된 작업을 실행하는 역할을 한다. 하나의 클러스터에는 여러개의 Supervisor 노드를 가질 수 있으며, 이를 통해서 여러개의 서버를 통해서 작업을 분산 처리할 수 있다.

Zookeeper(사육사; 데이터들이 날뛰어서 돌고래, 물개, 제품 로고가 동물들이 많다.)
이렇게 여러개의 Supervisor를 관리하기 위해서, Storm은 Zookeeper를 통해서 각 노드의 상태를 모니터링 하고, 작업의 상태들을 공유한다.

from http://bcho.tistory.com/993

zookeeper와 storm이 연결되어 zk-web으로 storm 관련 데이터를 확인 가능하다.

zks.jpg