storm의 tutorial 페이지
http://storm.apache.org/tutorial.html
환결 설정
tutorial을 진행하기 전에 환경 설정 부터 진행해야한다.
http://storm.apache.org/documentation/Setting-up-development-environment.html
storm 다운로드
http://storm.apache.org//downloads.html
에 접속해서 다운로드를 받자.
압축을 풀고 bin directory를 PATH에 추가한다.
storm cluster setup
http://storm.apache.org/documentation/Setting-up-a-Storm-cluster.html
cluster 구성 중 중요한 부분은 아래의 requirement이다.
java 6
python은 2.6.6
java 6라니 이게 진짜인지 의심스럽다;;
stackover flow를 보니 java 7, 8도 문제가 없을 것 같긴하다.
http://stackoverflow.com/questions/30316520/what-versions-of-jvm-are-recommended-for-storm
다운로드가 완료되면 conf/storm.yaml 설정을 수정한다.
1) storm.zookeeper.servers: 설정을 통해 zookeeper를 설정해준다. (그러니까 미리 zookeeper가 떠있어야한다는 소리)
storm.zookeeper.servers:
- "111.222.333.444"
- "555.666.777.888"
만약 사용하는 zookeeper port가 default가 아니라면 storm.zookeeper.port 설정에 port number를 추가해준다.
storm configuration default는 다음 주소에 있으니 참고 하면된다.
https://github.com/apache/storm/blob/master/conf/defaults.yaml
2) storm.local.dir: Nimbus와 Supervisor들은 로컬 디스크에 적은량의 state를 기록한다. (예를 들어 jars, confs)
directory를 생성하고 적절히 permission을 준후 아래와 같이 설정 파일에 기록하자.
storm.local.dir: "/mnt/storm"
3) nimbus.host: worker노드들이 jar나 conf등을 master 노드를 통해받을 수 있도록 다음 처럼 설정한다.
nimbus.host: "111.222.333.44"
4) supervisor.slots.ports: 얼마나 많은 worker들이 실행될 것인지 아래 설정을 통해서 정할 수 있다. 각 worker는 아래에 설정된 개수만큼 생성될 수 있으므로 전체 cluster에서 worker가 얼마나 필요할지 고민하고 설정하면 좋을 것 같다.
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
이제 storm을 키면 된다.
bin 디렉토리에 있는 storm 명령어를 사용하여 nimbus, supervisor, ui를 실행 시킨다.
$ ./bin/storm nimbus
$ ./bin/storm supervisor
$ ./bin/storm ui
위의 명령어를 그대로 치면 사실 foreground로 떠서 다음 명령어를 띄우기 어려운데 daemon으로 띄우기 위해 nohup을 사용하거나 다른 daemon tool을 사용하는 것도 좋다.
$ nohup ./bin/storm nimbus > /dev/null 2>&1 &
예를 들면 위에 같이 말이다.