Storm单机+
zookeeper
集群安装
1、安装zookeeper集群
2、准备机器
10.10.3.44 flumemaster1 zk
10.10.3.129 flumemaster2 zk
10.10.3.132 flumecollector1 zk
10.10.3.115 flumeNg1 storm
3、配置hosts文件(4台服务器上面都需要配置)
vi /etc/hosts
10.10.3.115 flumeNg1
10.10.3.44 flumemaster1
10.10.3.129 flumemaster2
10.10.3.132 flumecollector1
4、安装storm所需要的环境
接下来,需要在Nimbus和Supervisor机器上安装Storm的依赖库,具体如下:
以上依赖库的版本是经过Storm测试的,Storm并不能保证在其他版本的Java或Python库下可运行。
A、JDK安装,并配置到相应的 etc/profile文件中
B、安装ZeroMQ 2.2.0
jzmq的安装貌似是依赖zeromq的,所以应该先装zeromq,再装jzmq。
开始安装:
wget http://download.zeromq.org/zeromq-2.2.0.tar.gz
tar zxf zeromq-2.2.0.tar.gz
cd zeromq-2.2.0
./configure ( yuminstall libuuid-devel )
make
make install
(
如果遇到Error:cannot link with -luuid, install uuid-dev
cannot link with -luuid, install uuid-dev
可是安装 yuminstall uuid-dev 提示没有该包
解决办法 :
libuuid ispart of the util-linux-ng package since version 2.15.1 and is available from ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.21/util-linux-2.21.1.tar.gz
安装了 util-linux-2.21.1.tar.gz 后,重新执行 ./configure make make install 命令即可。
安装util-linux-2.21
tar -zxvf util-linux-2.21.1.tar.gz
cd util-linux-2.21
./configure
make HAVE_KILL=yes HAVE_SLN=yes
make HAVE_KILL=yes HAVE_SLN=yes install
安装 util-linux-2.21可能造成的后果是系统无法重启。可以改用util-linux-ng-2.17-rc1.zip安装包。
安装步骤:严格按照下面步骤执行,参考文档http://linux.chinaitlab.com/soft/874617.html
#unzip util-linux-ng-2.17-rc1.zip
#cd util-linux-ng-2.17
#./configure
#make
#mv /sbin/hwclock /sbin/hwclock.old
#cp hwclock/hwclock /sbin/
# hwclock --show
#hwclock -w
D、安装Python2.7.2
wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
tar zxvf Python-2.7.2.tgz
cd Python-2.7.2
./configure
make
make install
E、安装unzip
在CentOS 5中,系统已经自带unzip解压缩工具,不用安装。
注意事项:
1. 如果使用RedHat系列Linux系统,执行以下命令安装unzip:
apt-get install unzip
2. 如果使用Debian系列Linux系统,执行以下命令安装unzip:
yum install unzip
F、安装Storm(https://github.com/nathanmarz/storm/downloads 下载地址)
wget http://cloud.github.com/downloads/nathanmarz/storm/storm-0.8.1.zip
unzip storm-0.8.1.zip
mv storm-0.8.1 /usr/local/
ln -s /usr/local/storm-0.8.1/ /usr/local/storm
vim /etc/profile
export STORM_HOME=/usr/local/storm-0.8.1
export PATH=$PATH:$STORM_HOME/bin
G、修改storm/conf/storm.yaml文件
storm.zookeeper.servers:
- "flumemaster1"
- "flumemaster2"
- "flumecollector1"
nimbus.host: "flumeNg1"
storm.local.dir: "/usr/tmp/storm"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
说明一下: storm.local.dir 表示storm需要用到的本地目录。 nimbus.host 表示那一台机器是master机器,即 nimbus。 storm.zookeeper.servers 表示哪几台机器是zookeeper服务器。 storm.zookeeper.port 表示zookeeper的端口号,这里一定要与zookeeper配置的端口号一致,否则会出现通信错误,切记切记。当然你也可以配 superevisor.slot.port, supervisor.slots.ports 表示supervisor节点的槽数,就是最多能跑几个 worker进程(每个sprout或bolt默认只启动一个worker,但是可以通过conf修改成多个)。
java.library.path 这是storm所依赖的本地依赖(ZeroMQ和JZMQ)的加载地址, 默认的是:/usr/local/lib:/opt/local/lib:/usr/lib, 大多情况下是对的,所以你应该不用更改这个配置。
java.library.path: "/usr/local/lib:/opt/local/lib:/usr/lib:/home/jiangbing/storm/zeromq/lib"
注意事项:
这个脚本文件写的不咋地,所以在配置时一定注意在每一项的开始时要加空格(最好加两个空格),冒号后也必须要加空格,否则storm不认识这个配置文件。
T、在目录/usr/tmp下面增加storm文件夹
5、启动zookeeper环境(启动不正常,执行service iptablse stop关闭防火墙)
6、执行storm nimbus 启动nimbus
执行 storm supervisor 启动从节点
执行 storm ui 启动ui(ui和nimbus需要在同一台机子上面)
注意事项:
7、启动完毕,通过 http://ip:8080/访问UI
8、提交拓扑进行测试
A、安装Maven(参考maven安装和使用手册)
B、下载Storm-start ( https://github.com/nathanmarz/storm-starter/archive/master.zip)
C、进入下载目录,对zip文件解压
D、进入解压后的文件目录,修改m2-pom.xml (将twitter4j-core和twitter4j-stream替换为下面的部分)
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>[2.2,)</version>
</dependency>
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-stream</artifactId>
<version>[2.2,)</version>
</dependency>
E、编译项目。转到项目根目录,使用mvn -f m2-pom.xml package 进行编译
F、复制 storm-starter目录下的m2_pom.xml 为pom.xml ,放在与m2_pom.xml同一目录下
G、打jar包 mvn jar:jar
如果还需要对工程代码进行修改可以导入eclipse
G.1 使用mvn eclipse:eclipse编译成eclipse工程
G.2 eclipse import project
O、提交运行
拷贝jar包到Storm所在机器上。
编译无误后,在Storm-starter中target目录如下:
将storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar,拷贝到指定的目录下面
P、执行命令:
./storm jar /usr/soft/stormrun/storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar storm.starter.WordCountTopology test
Q:查看UI http://ip:8080
storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar
注意:
storm 启动supervisor报错java.lang.NoSuchMethodError: org.slf4j.helpers.Util.report(Ljava/lang/String)V
解决方案:去掉lib里面的log4j-over-slf4j-1.6.6.jar
1、安装zookeeper集群
2、准备机器
10.10.3.44 flumemaster1 zk
10.10.3.129 flumemaster2 zk
10.10.3.132 flumecollector1 zk
10.10.3.115 flumeNg1 storm
3、配置hosts文件(4台服务器上面都需要配置)
vi /etc/hosts
10.10.3.115 flumeNg1
10.10.3.44 flumemaster1
10.10.3.129 flumemaster2
10.10.3.132 flumecollector1
4、安装storm所需要的环境
接下来,需要在Nimbus和Supervisor机器上安装Storm的依赖库,具体如下:
- ZeroMQ 2.2.0
- JZMQ
- Java 6
- Python 2.7.2
- unzip
以上依赖库的版本是经过Storm测试的,Storm并不能保证在其他版本的Java或Python库下可运行。
A、JDK安装,并配置到相应的 etc/profile文件中
B、安装ZeroMQ 2.2.0
jzmq的安装貌似是依赖zeromq的,所以应该先装zeromq,再装jzmq。
开始安装:
wget http://download.zeromq.org/zeromq-2.2.0.tar.gz
tar zxf zeromq-2.2.0.tar.gz
cd zeromq-2.2.0
./configure ( yuminstall libuuid-devel )
make
make install
(
如果遇到Error:cannot link with -luuid, install uuid-dev
cannot link with -luuid, install uuid-dev
可是安装 yuminstall uuid-dev 提示没有该包
解决办法 :
libuuid ispart of the util-linux-ng package since version 2.15.1 and is available from ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.21/util-linux-2.21.1.tar.gz
安装了 util-linux-2.21.1.tar.gz 后,重新执行 ./configure make make install 命令即可。
安装util-linux-2.21
tar -zxvf util-linux-2.21.1.tar.gz
cd util-linux-2.21
./configure
make HAVE_KILL=yes HAVE_SLN=yes
make HAVE_KILL=yes HAVE_SLN=yes install
安装 util-linux-2.21可能造成的后果是系统无法重启。可以改用util-linux-ng-2.17-rc1.zip安装包。
安装步骤:严格按照下面步骤执行,参考文档http://linux.chinaitlab.com/soft/874617.html
#unzip util-linux-ng-2.17-rc1.zip
#cd util-linux-ng-2.17
#./configure
#make
#mv /sbin/hwclock /sbin/hwclock.old
#cp hwclock/hwclock /sbin/
# hwclock --show
#hwclock -w
#make install
zeromq安装完成。
注意事项:
如果遇到Error:cannot link with -luuid, install uuid-dev,原因为缺少uuid相关package:
# yum install uuid*
# yum install e2fsprogs*
# yum install libuuid*
C、安装JZMQ
如果缺少libtool,则先安装
yum install libtool
下载后编译安装JZMQ:
yum install git
git clone git://github.com/nathanmarz/jzmq.git
cd jzmq
./autogen.sh
./configure
make
make install
然后,jzmq就装好了。
注意事项:
- 如果没有安装git工具,请参照文件CentOS 5 上安装git.docx,该文件步骤经过检验,安装成功后可以测试:
- 如果运行./configure命令出现问题,参考这里。
- 在./autogen.sh这步如果报错:autogen.sh:error:could not find libtool is required to run autogen.sh,这是因为缺少了libtool,可以用#yum install libtool*来解决。
- 正确设置 JAVA_HOME环境变量
- 安装Java开发包
D、安装Python2.7.2
wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
tar zxvf Python-2.7.2.tgz
cd Python-2.7.2
./configure
make
make install
E、安装unzip
在CentOS 5中,系统已经自带unzip解压缩工具,不用安装。
注意事项:
1. 如果使用RedHat系列Linux系统,执行以下命令安装unzip:
apt-get install unzip
2. 如果使用Debian系列Linux系统,执行以下命令安装unzip:
yum install unzip
F、安装Storm(https://github.com/nathanmarz/storm/downloads 下载地址)
wget http://cloud.github.com/downloads/nathanmarz/storm/storm-0.8.1.zip
unzip storm-0.8.1.zip
mv storm-0.8.1 /usr/local/
ln -s /usr/local/storm-0.8.1/ /usr/local/storm
vim /etc/profile
export STORM_HOME=/usr/local/storm-0.8.1
export PATH=$PATH:$STORM_HOME/bin
G、修改storm/conf/storm.yaml文件
storm.zookeeper.servers:
- "flumemaster1"
- "flumemaster2"
- "flumecollector1"
nimbus.host: "flumeNg1"
storm.local.dir: "/usr/tmp/storm"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
说明一下: storm.local.dir 表示storm需要用到的本地目录。 nimbus.host 表示那一台机器是master机器,即 nimbus。 storm.zookeeper.servers 表示哪几台机器是zookeeper服务器。 storm.zookeeper.port 表示zookeeper的端口号,这里一定要与zookeeper配置的端口号一致,否则会出现通信错误,切记切记。当然你也可以配 superevisor.slot.port, supervisor.slots.ports 表示supervisor节点的槽数,就是最多能跑几个 worker进程(每个sprout或bolt默认只启动一个worker,但是可以通过conf修改成多个)。
java.library.path 这是storm所依赖的本地依赖(ZeroMQ和JZMQ)的加载地址, 默认的是:/usr/local/lib:/opt/local/lib:/usr/lib, 大多情况下是对的,所以你应该不用更改这个配置。
java.library.path: "/usr/local/lib:/opt/local/lib:/usr/lib:/home/jiangbing/storm/zeromq/lib"
注意事项:
这个脚本文件写的不咋地,所以在配置时一定注意在每一项的开始时要加空格(最好加两个空格),冒号后也必须要加空格,否则storm不认识这个配置文件。
T、在目录/usr/tmp下面增加storm文件夹
5、启动zookeeper环境(启动不正常,执行service iptablse stop关闭防火墙)
6、执行storm nimbus 启动nimbus
执行 storm supervisor 启动从节点
执行 storm ui 启动ui(ui和nimbus需要在同一台机子上面)
注意事项:
- Storm后台进程被启动后,将在Storm安装部署目录下的logs/子目录下生成各个进程的日志文件。
- 经测试,Storm UI必须和Storm Nimbus部署在同一台机器上,否则UI无法正常工作,因为UI进程会检查本机是否存在Nimbus链接。
- 为了方便使用,可以将bin/storm加入到系统环境变量中。
7、启动完毕,通过 http://ip:8080/访问UI
8、提交拓扑进行测试
A、安装Maven(参考maven安装和使用手册)
B、下载Storm-start ( https://github.com/nathanmarz/storm-starter/archive/master.zip)
C、进入下载目录,对zip文件解压
D、进入解压后的文件目录,修改m2-pom.xml (将twitter4j-core和twitter4j-stream替换为下面的部分)
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>[2.2,)</version>
</dependency>
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-stream</artifactId>
<version>[2.2,)</version>
</dependency>
E、编译项目。转到项目根目录,使用mvn -f m2-pom.xml package 进行编译
F、复制 storm-starter目录下的m2_pom.xml 为pom.xml ,放在与m2_pom.xml同一目录下
G、打jar包 mvn jar:jar
如果还需要对工程代码进行修改可以导入eclipse
G.1 使用mvn eclipse:eclipse编译成eclipse工程
G.2 eclipse import project
O、提交运行
拷贝jar包到Storm所在机器上。
编译无误后,在Storm-starter中target目录如下:
将storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar,拷贝到指定的目录下面
P、执行命令:
./storm jar /usr/soft/stormrun/storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar storm.starter.WordCountTopology test
Q:查看UI http://ip:8080
storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar
注意:
storm 启动supervisor报错java.lang.NoSuchMethodError: org.slf4j.helpers.Util.report(Ljava/lang/String)V
解决方案:去掉lib里面的log4j-over-slf4j-1.6.6.jar