2013년 7월 22일 월요일

Storm 설치

Storm 설치

  1. Storm의 구조
Figure 1 Storm의 구조
본 문서는 아래의 페이지를 참고하여 작성되었다.
Storm은 마스터 노드인 Nimbus와 Worker역할을 하는 Supervisor로 나누어져 있고,
노드 관리는 Zoopeeker를 사용한다.

  1. 계정 생성
계정 설정은 반드시 해야 할 필요는 없다.
groupadd -g 3321 storm
useradd -m -d /usr/local/storm -s /bin/bash -u 3321 -g 3321 storm

  1. 프로그램 설치
현재 최신 stable release는 0.82이며 아래 사이트에서 다운로드 받을 수 있다.

프로그램을 설치하기 전에 dependency 패키지를 설치해준다.
아래는 dependency 패키지를 설치하기 전에 설치해야 할 패키지들
apt-get install libtool autoconf g++ uuid-dev pkg-config git
설치 에러가 발생하면 sudo apt-get update를 실행 후, 다시 시도 한다.
아래는 storm을 설치하기 위한 dependency 패키지 이다.
Java 6
. package : openjdk-6-jdk, openjdk-6-jre
ZeroMQ 2.1.7 – 다른버전을 설치하면 문제가 될 수 있다.
. download link :
http://download.zeromq.org/zeromq-2.1.7.tar.gz
JZMQ
. download link(git clone사용) :
https://github.com/zeromq/jzmq
Java 6
Python 2.6.6
unzip

설치는 원하는 노드에 동일하게 압축을 풀고 config 파일을 설정 후, zookeeper와 nimbus 및 supervisor를 기동하면 설치는 완료가 된다.

  1. 설정
프로그램 압축 해제 후, 아래와 같이 config을 설정한다.
A) zookeeper
# 응답시간의 단위(밀리초)
tickTime=2000
# 처음에 다른 zookeeper와 싱크를 맞추는 시간(tickTime 수로 설정)
# 설정값이 10이면 실제로는 10 x 2000ms = 20초를 기다림. 이하 설정 방법 동일
initLimit=10
# 요청을 주고 받는 시간
syncLimit=5
# 데이터가 저장되는 경로
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper
# zookeeper client가 접속하는 포트
clientPort=2181
# 서버 리스트
server.0=172.27.241.212:2888:3888
server.1=172.27.175.60:2888:3888
server.2=172.27.139.205:2888:3888

B) Nimbus
# 데이터(토폴로지 정보등)를 저장하는 경로
storm.local.dir: "/opt/storm"
# zookeeper 노드
storm.zookeeper.servers:
    - "zookeeper1"
    - "zookeeper2"
# ui 접속 시, 사용하기 위한 포트
ui.port: 8080

# zeromq 쓰레드 및 링거(남은 데이터 전송을 위한) 타임
zmq.threads: 1
zmq.linger.millis: 5000

C) worker
# zookeeper 노드
storm.zookeeper.servers:
    - "zookeeper1"
    - "zookeeper2"
# nimbus 호스트 정보
nimbus.host: "nimbus"

# supervisor의 listen하는 정보
# 설정 개수만큼 worker가 생성됨
supervisor.slots.ports:
   - 7000
   - 7001
   - 7002
   - 7003
   - 7004

# heartbeat frequency 및 worker start timeout
supervisor.heartbeat.frequency.secs: 10
supervisor.worker.start.timeout.secs: 120

# zeromq 설정정보
zmq.threads: 1
zmq.linger.millis: 5000

  1. 실행
A) Nimbus 실행
bin/storm nimbus

B) Supervisor 실행
bin/storm supervisor

C) UI
bin/storm ui 을 실행 후,
UI는 nimbus가 설치된 호스트에 config에 설정한 포트로 웹에서 접속하면 된다.

  1. 예제
아래 페이지의 A simple topology 항목 참조

테스트 코드



댓글 없음:

댓글 쓰기