目前大数据时代已经来临,面临大数据分布式、实时处理的多种技术平台,我们该如何选择?经过调研及逐步甄选,Storm和S4是相对比较突出的两个分布式流计算平台,Storm是由twitter开源,S4是雅虎开源,相对于S4,Storm的成熟度高稳定性好。包括阿里巴巴等大型公司的数据平台也在使用Storm。
搜罗了网上很多Storm的安装教程,大多数网友也是转载,没有一篇教程能够指导完整的安装。下面,我将以Red hat 5.4为例,讲述我的整个安装过程。
一、安装前的准备
以下安装包经过亲测,不能保证其他版本之间是否互相兼容:
(1)从http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz下载python
(2)从http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz下载zookeeper
(3)从http://download.zeromq.org/historic/zeromq-2.1.7.tar.gz下载zeromq
(4)从https://nodeload.github.com/nathanmarz/jzmq/zip/master下载jzmq
(5)从https://dl-web.dropbox.com/u/133901206/storm-0.8.2.zip下载storm,(注意:storm官网链接到的storm下载地址被大陆大部分地区屏蔽,所以要把官网的下载域名替换为dl-web.dropbox.com才可以的)
(6)从orcale官网下载jdk1.6,这里不再列举下载地址,大部分网友应该都有。
(7)从https://nodeload.github.com/technomancy/leiningen/zip/1.x下载lein
二、开始安装
(1)首先将下载好的7个安装包,拷贝到安装机器中,我这暂时以/data/app/package为例。
(2)安装jdk1.6,设置JAVA_HOME和PATH,已经安装的网友忽略此步;
(3)安装python,#cd /data/app/package:
3.1 #tar zxvf Python-2.7.2.tgz
3.2 #./configure
3.3 #make
3.4 #make install
3.5 #vi /ect/ld.so.conf 在末尾追加 /usr/local/lib
3.6 #sudo ldconfig
(4)安装zookeeper,#cd /data/app/package:
4.1 #tar zxf zookeeper-3.3.6.tar.gz
4.2 #cd zookeeper-3.3.6/conf
4.3 #cp zoo_sample.cfg zoo.cfg 复制一个生效的配置文件,配置项可暂不做修改
4.4 #cd ../bin
4.5 #chmod +x * 给执行脚本赋权
4.6 #./zkServer.sh start 启动zookeeper
(5)安装zeromq,#cd /data/app/package:
5.1 #tar zxf zeromq-2.1.7.tar.gz
5.2 #cd zeromq-2.1.7
5.3 #./configure
5.3.1如果报错:(我安装的时候没有报错,因为redhat5.4已经有c compiler,报错的网友按照下面解决)
configure: error: in `/usr/local/download/zeromq-2.1.7':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
原因为没有安装c compiler
解决方法:
#yum install gcc*
5.3.2 如果遇到Error:cannot link with -luuid, install uuid-dev(我安装的时候遇到)
原因为缺少uuid相关package
解决方法:
#yum install uuid*
#yum install e2fsprogs*
5.4#make
5.5#make install
5.6#ldconfig
(6)安装jzmq,#cd /data/app/package:
6.1#unzip jzmq-master.zip (没有安装unzip命令的网友,通过yum安装,redhat5.4已自带)
6.2#cd jzmq-master
6.3#./autogen.sh
6.3.1如果报错:(我安装过程中没有报错)
autogen.sh: error: could not find libtool. libtool is required to run autogen.sh.
缺少libtool,解决办法:
#yum install libtool*
6.4#./configure
6.5#make
6.6#make install
(7)安装lein(Storm运行依赖lein),#cd /data/app/package:
7.1#mkdir lein
7.2#unzip leiningen-1.x.zip
7.3#cp leiningen-1.x/bin/lein lein
7.4#rm -rf leiningen-1.x* (这里仅需要lein这一个可执行文件,其余的源码不需要,所以删除)
7.5#cd lein
7.6#chmod +x lein
7.7#./lein (执行一下,触发下载依赖,执行时,会将lein依赖的jar包从网络下载下来,如果你的电脑与网络不通,可以提前将leiningen-1.7.1-standalone.jar下载下来,放到~/.lein/self-installs文件夹下)
(8)安装storm,#cd /data/app/package:
8.1#unzip storm- 0.8.3 zip
8.2#cd storm- 0.8.3
8.3#cd conf
8.4#vi storm.yaml (每个配置项前面都要有英文空格,否则不生效)
########### These MUST be filled in for a storm configuration
storm.zookeeper.servers:
- "localhost" (我部署的zookeeper和storm同一台机器,所以使用localhost)
# - "server2" (如果对接zookeeper集群,则增加多个,这里先使用zookeeper单点)
storm.zookeeper.server.ports:
- "2181" (zookeeper的端口,默认2181,可不设置)
nimbus.host: "localhost" (nimbus的ip地址,我这里只在单机部署,所以用localhost,如果supervisor和nimbus不是同一台机器,则需要指定具体ip)
8.5#cd ../bin
8.6#chmod +x *
8.7#nohup ./storm nimbus & (启动storm控制进程)
8.8#nohup ./storm ui & (启动storm的ui监控界面,ui界面进程必须与控制进程在同一台机器)
通过http://localhost:8080/可以直接访问
8.9#nohup ./storm supervisor &(启动storm的工作进程)
现在完成了整个storm平台的部署,如上的内容是单机版的部署,如果需要搭建storm集群,那么需要将每台集群机器都要按照如上流程部署,不同的是:
主控机和工作机的storm.yaml不同;主控器使用的是 ./storm nimbus启动,工作机使用的是 ./storm supervisor启动。
谢谢!后面会继续展开storm平台各项功能的研究,研究的札记也会分享出来。
********************************************************************************************************************
附:使用redhat 系统在线安装时提示This system is not registered with RHN(因为安装最后一步没有注册).如下:
[root@localhost ~]# yum install uuid*
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Install Process
No package httpd available.
Nothing to do
解决方案:
1.卸载redhat自带的yum组件
[root@localhost ~]# rpm -qa|grep yum|xargs rpm -e --nodeps
2.安装centos的yum包
[root@localhost ~]# wget http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/yum-metadata-parser-1.1.2-4.el5.i386.rpm
[root@localhost ~]# wget http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm
[root@localhost ~]# wget http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/yum-3.2.22-40.el5.centos.noarch.rpm
[root@localhost ~]# rpm -ivh *.rpm
warning: yum-3.2.22-37.el5.centos.noarch.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing... ########################################### [100%]
1:yum-metadata-parser ########################################### [ 33%]
2:yum-fastestmirror ########################################### [ 67%]
3:yum ########################################### [100%]
3. 下载更新源,并存放在系统目录中
[root@localhost ~]# wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo
[root@localhost ~]#mv CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
4.生成缓存并进行安装
[root@localhost ~]# yum makecache
[root@localhost ~]# yum install uuid*