系统: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 node2tips:
scp xx_file user@ip_address:directory scp -r xx_dir user@ip_address:directory
下载 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
git clone https://github.com/nathanmarz/jzmq.git cd jzmq ./autogen.sh ./configure make sudo make install两个安装时的错误修正方法
touch src/classdist_noinst.stamp(2).错误:无法访问 org.zeromq.ZMQ
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