storm安装配置

系统:Ubuntu 12.04 64bit (VirtualBox下)

节点:VM1,VM2

 1.JAVA、Python安装配置

略,JAVA:1.6,Python 2.7

centos5.9下默认是python2.4.3,没有json module,需要单独安装 yum -y install python-simplejson

2.编译工具安装

sudo apt-get install build-essential uuid-dev unzip autoconf automake

注意在安装uuid-dev的时候不同系统安装的名称不一样,使用centeros的同学需要安装yum install uuid-devel,ubuntu的同学可以直接安装apt-get install uuid-dev

3.修改 /etc/hosts 文件,末尾添加,并且scp到另一个VM上

11.22.33.44 node1
55.66.77.88 node2
tips:
scp xx_file user@ip_address:directory
scp -r xx_dir user@ip_address:directory

4.安装zookeeper

下载 zookeeper-3.4.5

将zookeeper-3.4.5/conf目录下面的 zoo_sample.cfg复制一个为zoo.cfg,配置文件内容修改如下:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/home/username/zookeeper-3.4.5/tmp/zookeeper-data
dataLogDir=/home/username/zookeeper-3.4.5/tmp/logs
# the port at which the clients will connect
clientPort=2181

server.1=node1:2888:3888
server.2=node2:2888:3888
同样的scp传输到另一个VM对应目录。

设置myid,在dataDir对应的目录(/home/username/zookeeper-3.4.5/tmp/zookeeper-data)下面新建文件,node1的写1,node2的写2,(1对应了 server.1=node1:2888:3888 里面的server.1)

echo "1" > /home/username/zookeeper-3.4.5/tmp/zookeeper-data/myid   (node1上)
echo "2" > /home/username/zookeeper-3.4.5/tmp/zookeeper-data/myid   (node2上)

两个VM上都启动zookeeper

~/zookeeper-3.4.5/bin/zkServer.sh start
然后查看zookeeper状态

~/zookeeper-3.4.5/bin/zkServer.sh status

一个VM上显示如下

JMX enabled by default
Using config: /home/username/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: leader

另一个VM上显示如下

JMX enabled by default
Using config: /home/username/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: follower

一开始可能会显示出错,过一会儿就好了

5. ZeroMQ 2.2.0安装

下载,解压,进入目录

./configure
make
sudo make install

6. jzmq安装(JZMQ是ZeroMQ的Java Binding)

git clone https://github.com/nathanmarz/jzmq.git
cd jzmq
./autogen.sh
./configure
make
sudo make install
两个安装时的错误修正方法
(1).make[1]: *** 没有规则可以创建“org/zeromq/ZMQ.class”需要的目标“classdist_noinst.stamp”。 停止
   修正方法,创建classdist_noinst.stamp文件,
touch src/classdist_noinst.stamp
(2).错误:无法访问 org.zeromq.ZMQ
  修正方法,进入src目录,手动编译相关java代码

javac -d . org/zeromq/*.java


7.安装storm

下载Storm发行版本,目前版本Storm0.8.2,解压

unzip storm-0.8.1.zip
修改Storm的配置文件  conf/storm.yaml

########### These MUST be filled in for a storm configuration
storm.zookeeper.servers:
     - "node1"
     - "node2"

storm.local.dir: "/home/username/storm-0.8.2/workdir"

ui.port: 8088

# 
nimbus.host: "node1"

supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703

nimbus服务器设置在node1上,各自创建对应的workdir文件夹。

ui.port这里修改成了8088,默认是8080,为了避免和其他web服务冲突。

supervisor.slots.ports: 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口。

Nimbus: 在Storm主控节点(node1)上运行,启动Nimbus后台程序,并放到后台执行(各自exception重定向到null了,呵呵);

bin/storm nimbus >/dev/null 2>&1 &

Supervisor: 在Storm各个工作节点(node1,node2)上运行,启动Supervisor后台程序,并放到后台执行;

bin/storm supervisor >/dev/null 2>&1 &
UI: 在Storm主控节点(node1)上运行,启动UI后台程序,并放到后台执行。

bin/storm ui >/dev/null 2>&1 &
UI启动后,可以通过 http://node1:8088 观察集群的worker资源使用情况、Topologies的运行状态等信息。

主要参看 

http://blog.csdn.net/lldustc/article/details/8451949

http://blog.csdn.net/larrylgq/article/details/7324146

http://my.oschina.net/BreathL/blog/84165

http://blog.sina.com.cn/s/blog_5ca749810101c34u.html

http://blog.csdn.net/cnbird2008/article/details/8792423

你可能感兴趣的:(storm,zookeeper)