Storm分布式流计算平台的部署安装

     目前大数据时代已经来临,面临大数据分布式、实时处理的多种技术平台,我们该如何选择?经过调研及逐步甄选,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*

你可能感兴趣的:(storm,zookeeper,分布式流计算)