주요글: 도커 시작하기
반응형

실시간 데이터 처리용으로 쓰임새가 늘어나고 있는 스톰Storm을 설치해 봤는데, 그 과정을 정리해 본다.


설치 순서

  1. 자바 설치 (1.6 이상 설치되어 있다고 가정)
  2. 주키퍼ZooKeeper 설치
  3. ZeroMQ 설치
  4. JZMQ 설치
  5. 스톰 님버스Nimbus 설정
  6. 스톰 수퍼바이저Supervisor 설정
  7. 클러스터 시작하기
본 설치 과정을 위해 CentOS 6버전이 설치된 5대의 장비를 사용했다. 각 호스트 이름 별로 다음의 데몬들을 설치할 것이다.
  • zk1: 주키퍼 설치
  • storm-nimbus: 님버스 설치, ZeroMQ, JZMQ
  • storm-sup1 ~ storm-sup3: 수퍼바이저 설치, ZeroMQ, JZMQ
참고로, 스톰의 님버스나 수퍼바이저가 뭔지 모른다면, 스톰 훑어보기 자료(http://javacan.tistory.com/324)를 참고하기 바란다.

주키퍼ZooKeeper 설치(zk1 장비)

1. 주키퍼 데이터 디렉토리 생성

이 글에서는 /data1/zk 를 생성한다고 가정

2. 원하는 디렉토리에 주키퍼 다운로드 받아 설치

여기서는 /data1/program 디렉토리에 설치한다고 가정. 아래 다운로드 경로는 http://www.apache.org/dyn/closer.cgi/zookeeper/ 에서 확인

$ cd /data1/program
$ wget http://mirror.apache-kr.org/zookeeper/stable/zookeeper-3.4.5.tar.gz
$ tar xvzf zookeeper-3.4.5.tar.gz

3. 주키퍼 설정 파일 작성

/data1/program/zookeeper-3.4.5/conf/zoo.cfg 파일 작성. 아래는 작성 예이다.

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data1/zk
clientPort=2181
autopurge.snapRetainCount=5
autopurge.purgeInterval=25


4. 주키퍼 실행


$ cd /data1/program/zookeeper-3.4.5/bin

./zkServer.sh start

JMX enabled by default

Using config: /data1/program/zookeeper-3.4.5/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED



ZeroMQ 설치 (storm-nim, storm-sup1~storm-sup3 장비)


ZeroMQ는 스톰이 통신할 때 사용하는 라이브러리이다.


1. 필요 라이브러리 설치


$ yum install gcc gcc-c++ libuuid-devel


2. ZeroMQ 설치


$ wget http://download.zeromq.org/zeromq-4.0.3.tar.gz

$ tar xzf zeromq-4.0.3.tar.gz

$ cd zeromq-4.0.3

$ ./configure

$ make

$ make install


설치가 끝나면 /usr/local/lib/ 디렉토리에 libzmq.so 파일이 있는 확인해보자.


JZMQ 설치 (storm-nim, storm-sup1~storm-sup3 장비)


1. git 설치 / libtool 설치


git으로부터 소스를 다운로드 받으므로, git을 설치한다. git에서 clone 하기 싫다면, Github 사이트에서 직접 다운로드 받아도 된다.


$ yum install git libtool


2. JZMQ 설치


JAVA_HOME이 알맞게 설정되어 있어야 한다.


$ git clone https://github.com/nathanmarz/jzmq.git

$ cd jzmq

$ ./autogen.sh

$ ./configure

$ make

$ make install


/usr/local/share/java 디렉토리에 zmq.jar 파일이 생성된 것을 확인할 수 있다.



스톰 설치 (storm-nim, storm-sup1~storm-sup3 장비)


1. 스톰 다운로드


님버스와 수퍼바이저를 실행할 장비에 모두 Storm을 다운로드해서 설치한다. 아래 다운로드 주소는 http://storm-project.net/downloads.html 에서 구하면 된다.


$ wget https://dl.dropboxusercontent.com/s/tqdpoif32gufapo/storm-0.9.0.1.tar.gz

$ tar xzf storm-0.9.0.1.tar.gz

$ ln -s storm-0.9.0.1 storm


2. 스톰 데이터 디렉토리


님버스와 수퍼바이저로 사용될 장비에 스톰이 데이터를 보관할 디렉토리를 생성한다. 이 글에서는 /data1/storm 디렉토리를 사용한다고 가정한다.


3. 스톰 설정 파일 작성


각 장비의 [스톰설치경로]/conf/conf/storm.yaml 파일을 수정한다.


storm.zookeeper.servers:

     - "zk1"

 

nimbus.host: "storm-nim"


storm.local.dir: "/data1/storm"


ui.port: 8087


주키퍼 포트를 변경해야 한다거나, 디폴트 설정 값 등의 정보가 궁금하다면 https://github.com/nathanmarz/storm/blob/master/conf/defaults.yaml 를 참고하면 된다.


4. 스톰 클러스터 데몬 실행


storm-nim 장비에서 스톰 님버스 데몬을 실행한다. Ctrl+C 키를 누르면 데몬이 중지된다.


$ cd [스톰설치디렉토리]/bin

$ ./storm nimbus

Running: java -server -Dstorm.options= .......생략


storm-sup1 ~ storm-sup3 장비에서 동일한 방식으로 스톰 수퍼바이저 데몬을 실행한다. 마찬가지로 Ctrl+C 키를 누르면 중지된다.


$ cd [스톰설치디렉토리]/bin

$ ./storm supervisor

Running: java -server -Dstorm.options= .......생략


님버스 데몬을 실행 중인 장비에서 스톰 UI 웹 서버를 실행할 수 있다. 다음은 스톰 UI 데몬 실행 명령어이다.


$ ./storm ui


앞서 설정 파일에서 "ui.port"의 값을 8087로 주었는데, http://nimbus호스트:8087 로 연결해보면 다음과 비슷한 화면이 출력되는 것을 확인할 수 있다.



최초 환경 테스트를 수행할 때에는 위와 같이 스톰 데몬을 수동으로 띄우지만, 실제 환경에서는 supervisord나 daemontools, monit과 같은 툴을 이용해서 프로세스가 죽을 경우 자동으로 뜨도록 해 놓는다.


5. 간단한 명령어로 확인


아래 명령어로 클러스터에 등록된 토폴로지를 확인할 수 있다.


$ storm list

...생략

No topologies running.


설치가 완료되었다.




+ Recent posts