在Ubuntu15.10下安装Storm集群(一个机器上运行Nimbus和Supervisor 适合初学者)
1. 下载所需的资源
jdk-8u65-linux-x64.tar.gz
zeromq-4.1.4.tar.gz
jzmq-master.zip
zookeeper-3.5.1-alpha.tar.gz
apache-storm-0.10.0.tar.gz
2. 安装jdk
我们打算把jdk安装在/usr/lib/jvm中;首先把Windows上下载好的jdk包复制到Ubuntu系统的用户文件夹(/home/<你的用户名>)中(如果无法复制可能是你的VMTools没有正确安装,需要重新安装VMTools);打开终端(Ctrl+Alt+T)并输入:sudo mkdir /usr/lib/jvm 输入用户密码即可创建该文件夹;接下来使用:sudo mv jdk-8u65-linux-x64.tar.gz /usr/lib/jvm 把jdk包移动一下;使用:cd /usr/lib/jvm 转到当前目录;解压Jdk:sudo tar -zxvf dk-8u65-linux-x64.tar.gz;完成后配置环境变量:sudo gedit /etc/profile;在打开的文档里面加入:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_65
export CLASSPATH=usr/lib/jvm/jdk1.8.0_65/lib
export PATH=${HAVA_HOME}/bin:$PATH
保存后关闭并运行:source /etc/profile使之生效。
3. 安装依赖的库文件
Storm及其组件需要依赖一些库文件才可以启动。Ubuntu15.10已经安装了python,无需再安装python。接下来安装以下库文件:
sudo apt-get install libtool
sudo apt-get install autoconf
sudo apt-get install g++
sudo apt-get install uuid-dev
sudo apt-get install uuid
4. 安装zeromq(ZMQ)
进入解压后的zeromq-4.1.4文件夹,依次执行:
./configure
make
sudo make install
sudo ldconfig
如果中途出现没有发现uuid、g++等错误,说明你遗漏了第三步的某一项,如果出现没有发现libsodium库的错误,则使用:
./configure --prefix=/usr/local/zeromq --without-libsodium 略过这个库。接着执行上面的后三条命令。
5. 安装jzmq
由于ZMQ是C/C++的库文件,Storm是基于JVM的。jzmq是用JNI封装的ZMQ的Java库。
进入解压的jzmq-master文件夹中,运行下列命令:
./autogen.sh
./configure
Make
Sudo make install
若在此过程中出来找不到zmq.h的错误,则配置一下环境变量,把刚才编译完的zmq的文件夹加入到PATH中;若出现需要org.zeromq/ZMQ.class的错误,那么首先执行:
touch src/classdist_noinst.stamp
接着进入src/org/zeromq文件夹中执行javac*.java,然后回退到jzmq-master中执行:
make
sudo make install
6. 配置Zookeeper
进入解压后的zookeeper文件夹中,将文件./conf/zoo_sample.cfg重命名为./conf/zoo.cfg,添加如下内容到里面:
clientPort=2181
dataDir=/usr/local/zookeeper/data
syncLimit=5
initLimit=10
tickTime=2000
dynamicConfigFile=/usr/local/zookeeper/conf/zoo.cfg.dynamic.100000000
在conf目录下新建zoo.cfg.dynamic.100000000文件并添加如下内容:
server.1=weekend01:2888:3888
其中weekend01是主机名,根据自己的主机名改变它。
后来新建一个目录/usr/local/zookeeper/data并把它设置为当前登录的用户所有权:
sudo chown -R username /usr/local/zookeeper/data
在该目录下新建一个名为myid的文件,把1写入此文件。这个文件里面保存的是这台机器在zookeeper集群上的pid,刚才写的server.1与这个文件里的1是对应的。
运行下列命令启动Zookeeper :
bin/zkServer.sh start
过一小段时间后(如果开启后立马检查,它会检测不到)执行下列命令检查是否启动成功:
Bin/zkServer.sh status
若出现错误则检查防火墙是否已关闭:
service iptables status
如果正在运行则关掉它:
Service iptables stop
关掉防火墙后重新启动zookeeper。
7. 配置Storm
进入解压后的storm文件夹的conf文件夹中,修改storm.yaml文件,插入以下内容:
storm.zookeeper.servers:
- "weekend01"
# - "weekend02"
# - "weekend03"
nimbus.host: "weekend01"
storm.local.dir: "/usr/lian_storm"
ui.port: 8383
supervisor.slots.ports:
- 6700
- 6702
- 6703
其中storm.zookeeper.servers设置zookeeper所在的机器,这里只有一个weekend01;nimbus.host设置storm主节点nimbus所在的机器;ui.port设置storm界面所占用的端口,建立使用两位以上的,两位的会提示你没有权限使用。
接下来就可以启动Storm了,首先要启动zookeeper,再执行如下命令:
./bin/storm nimbus &
./bin/storm supervisor &
./bin/storm ui &
启动起来Nimbus、Supervisor和UI。
是否启动成功可在浏览器输入weekend01:8383查看。