系统: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
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
搭建Storm集群
本文详细介绍了在Ubuntu12.04 64位环境下搭建Apache Storm集群的过程,包括配置Zookeeper、安装ZeroMQ及JZMQ、配置Storm环境等内容。
823

被折叠的 条评论
为什么被折叠?



