Ubuntu下Storm安装(单机,分布式)

1. Ubuntu下Storm单机版安装

  安装Storm还需要提前安装Python,Zookeeper,ZeroMQ,jzmq,然后才是Storm的安装和配置:

  1.1 安装Python

  一般Linux系统都会自带Python,如果没有可以按照以下步骤安装:

  wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz

  tar zxf Python-2.7.2.tgz

  cd Python-2.7.2

  ./configure

  make

  make install

  在/etc/ld.so.conf后追加/usr/local/lib/

  sudo ldconfig

  1.2 安装Zookeeper

  从人人的Apache镜像处下载Zookeeper

  wget http://labs.renren.com/apache-mirror/zookeeper/stable/zookeeper-3.4.4.tar.gz

  tar zxf zookeeper-3.4.4.tar.gz

  在/etc/profile或者~/.bashrc追加:

  export ZOOKEEPER_HOME=path/to/zookeeper.3.4.4

  export PATH=$PATH:$ZOOKEEPER/bin

  1.3 安装ZeroMQ

  wget http://download.zeromq.org/zeromq-2.1.7.tar.gz

  ./configure

  //在configure时可能会报缺包,安装即可:sudo apt-get install g++ uuid-dev

  make

  sudo make install

  sudo ldconfig

  1.4 安装jzmq

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

  //如果没有git,安装即可:sudo apt-get install git

   ./autogen.sh

  //可能会报缺包,安装即可: sudo apt-get install libtool auto-make

  ./configure

  //可能需要设置JAVA_HOME,export JAVA_HOME=path/to/java

  make

  sudo make install

  1.5 安装配置Storm

  wget https://github.com/nathanmarz/storm/downloads/storm-0.7.1.zip

  unzip storm-0.7.1.zip

  //没有unzip工具的话下载:sudo apt-get install unzip

  在/etc/profile追加

  export STORM_HOME=/path/to/Storm

  export PATH=$PATH:$STORM_HOME/bin

  1.6 测试

  Storm安装后可以进行简单的测试,测试用到的工程可以从github得到:

  git clone git://github.com/nathanmarz/storm-starter

  需要将这个工程编译成一个jar包,编译过程见[2],我也有编译好的jar包,请致信kemaswill@163.com索取。

  测试:storm jar StormStarter.jar storm.starter.ExclamationTopology

 

  2 分布式Storm安装

  Storm集群包含一个中心节点Nimbus,多个从节点Supervisor。

  2.1 Zookeeper集群搭建

  首先我们需要搭建一个Zookeeper集群,搭建过程见[3]。

  2.2 安装依赖软件及Storm  

  我们在Storm的每个节点上安装Python,ZeroMQ,jzmq,Storm。

  2.3 配置Storm集群

  配置每个节点的Storm(根据前人[1]经验,每行要以空格开始,冒号后要有空格!):

  配置conf/storm.yaml文件:

  nimbus.host: "nimbus"

  storm.local.dir: "path/to/local/dir"

  storm.zookeeper.servers:
   - "zookeeper1"
   - "zookeeper2"
   - "zookeeper3"

   storm.zookeeper.port: 2181

  其中nimbus.host为Nimbus节点的主机名或IP地址。

  storm.local.dir为存储相关信息比如jar,topology等的目录。

  storm.zookeeper.servers为zookeeper集群的主机名或IP地址。

  storm.zookeeper.port为Zookeeper服务的端口号,要和你的Zookeeper服务的端口号一致(2181是默认的)。

  以上配置需要在每个节点,包括Nimbus和Supervisor上配置,且前三项是必须的,第二项如果不设置会报Connection Refused错误。

  在Nimbus节点上的~/.storm/storm.yaml配置(没有该文件的话创建之):

  nimbus.host: "nimbus"

  到这里Storm集群就配置完毕了。

  2.4 启动Storm集群

  在Nimbus节点上启动Nimbus服务:

  bin/storm nimbus &

  加&是为了在后台运行,否则当前的终端就不能再输入命令了

  在Nimbus节点上启动UI,这样就可以通过浏览器在http://nimbus-host:8080上观察整个Storm集群以及Topology的运行情况

  bin/storm ui &

  在Supervisor节点上启动Supervisor:

  bin/storm supervisor &

   这样整个Storm集群便启动了。

  2.5 Storm集群测试

  Storm集群的测试依然可以使用我们之前用过的StormStarter.jar,在Nimbus节点上执行:

  storm jar StormStarter.jar storm.starter.ExclamationTopology exclamation

  注意,与单机版Storm不同的是,我们在主类ExclamationTopology后面加了一个字符串 exclamation,该字符串是任意的,用来在集群中标示这个Topology,如果不填加这个字符串则该Topology会在单机环境下运行。

  参考文献:

  [1] Twitter Storm安装实战 主要参考该博文,但是其中的一些网址可能会找不到,在本文中更新。

  [2] 编译StormStarter 该博文的二 2)部分有详细介绍

  [3] Zookeeper集群安装配置

  

posted on 2012-10-24 21:50  潘的博客  阅读(4840)  评论(1编辑  收藏  举报

导航