본문 바로가기

카테고리 없음

storm설치





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 &

예를 들면 위에 같이 말이다.