storm文档(12)----自己搭建storm集群

ubuntu下  storm  安装步骤

安装storm之前首先需要安装一些依赖库:

zookeeper、JDK 6、python2.6.6、jzmq、zeromq

这些库所需要的依赖库不再一一笔述。

 

以下为具体安装过程:

 

一、安装JDK

       zookeeper要求安装JDK 6或更高版本( 目前最新稳定版本为JDK8), 但是由于storm要求安装JDK 6, 因此选择安装JDK 6。

         JDK下载地址:http://www.oracle.com/technetwork/java/javase/archive-139210.html

         JDK安装过程:http://www.oracle.com/technetwork/java/javase/index-137561.html#linux

1、下载JDK6

(1)打开 JDK下载地址:

        storm文档(12)----自己搭建storm集群_第1张图片

        

(2)选择Java  SE 6并下载

 storm文档(12)----自己搭建storm集群_第2张图片

2、安装JDK

(1)修改权限:

                   chmod+x 6u <version>-linux-x64.bin

 

(2) 安装:Sun公司出版的《Java核心编程》建议安装在/usr下,而不是/usr/local下,具体原因不明。

                   sudo  ./ 6u <version>-linux-x64.bin安装目录

 

(3)  配置环境变量

                   export  JAVA_HOME=安装目录

                   export  JRE_HOME=$JAVA_HOME/jre

                   export  CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

                   export  PATH=$JAVA_HOME/bin:$PATH

 

注意:解决JDK版本冲突的方式就是修改这些环境变量

 

         三种方式:

         方式一: 只在当前shell中可用:

                   则在当前shell命令行中上述语句即可

         方式二: 只在当前用户中可用:

                   则在~/.bashrc末尾添加上述语句即可

                   当前shell中启用:

                   source   ~/.bashrc

         方式三: 所有用户均可用:

                   则在/etc/profile末尾添加上述语句即可

                   当前shell中启用:

                   sudo source  /ect/profile

                   本例中采用方式三。

 

3、测试java是否安装成功 

                   java  -version

        

 

 

 

二、安装zookeeper

         参考zookeeper官方wiki: http://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html

 

1、zookeeper的系统要求:

         支持的平台包括:GNU/LINUX、 Sun Solaris、FreeBSD、Win32、MaxOSX

         软件要求:需要JDK 6或更高版本; 对于Zookeeper集群,官方推荐最小节点数是3个,并且运行在不同的机器上; 为避免数据swap导致性能下降, 在内存允许的情况下,尽可能的增大java heap size,例如 4GB 内存时java heap size可以设置为3GB

2、具体安装过程

(1)

        

(2)安装zookeeper的依赖工具包:

                   gcc、cppunit、python-setuptools

         i.  gcc系统一般会自带, 不需要安装

         ii.  安装python-setuptools:

                   sudoapt-get install  python-setuptools

         iii.  安装cppunit

                   sudoapt-get install  cppunit

 storm文档(12)----自己搭建storm集群_第3张图片

(2) 配置zookeeperconfiguration file:

         由于本集群中有10个节点,因此配置

 storm文档(12)----自己搭建storm集群_第4张图片

 

 

三、安装python

         根据storm要求,需要安装python2.6.6,python下载地址:http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tar.bz2

 

1、下载python 2.6.6

wget  http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tar.bz2

 storm文档(12)----自己搭建storm集群_第5张图片

 

 

2、编译安装python 2.6.6

         (1)解压:tar -jxvfPython-2.6.6.tar.bz2

         (2)编译安装:

                   cd  Python

                   sudo./configure --prefix=/usr/local/lib/python2.6.6

                   sudomake

 

在安装过程中有可能会出现几处错误

错误一:

 

根据上述错误,搜索得出是因为Debian/Ubuntu的Multiarch机制造成:即使不同架构下编译的二进制文件可以在同一个系统下运行。

参考文档:

http://jisedai.vayn.de/2011/06/28/python-3-installation-note.html

http://bugs.python.org/issue9762

http://bugs.python.org/issue11715

出错原因:不同架构下的库的搜索路径可能不一致,因此setup.py可能找不到编译时所需要的库文件。

 

解决办法:修改setup.py,将multiarch的路径加进setup.py的搜索路径。

具体补丁:https://hg.python.org/cpython/rev/bd0f73a9538e

 storm文档(12)----自己搭建storm集群_第6张图片

 

错误二:

解决错误一之后,进行make,依然报错:

storm文档(12)----自己搭建storm集群_第7张图片

上述错误说明缺少依赖库:按照提示说明上述依赖库可以修改setup.py中的detect_modules()函数取消依赖,但由于无法预料不安装哪一个会出现何种结果,因此决定都安装,共18个依赖库。

 

依次安装:

1)安装 zlib(压缩库)

         查找zlib库


         安装:sudo  apt-get install  zlib1g-dev

storm文档(12)----自己搭建storm集群_第8张图片

         查看是否安装成功,zlib没有出现说明安装成功,继续安装

 

2)安装bz2

         查找bz2库(压缩库)

        

         安装:sudoapt-get install libbz2-dev

storm文档(12)----自己搭建storm集群_第9张图片

 

3)安装gdbm(dbm是类unix系统的数据库,使用Hash保存非结构化数据,不支持SQL,gdbm是GNU版本的dbm)

         查找gdbm并安装:

         sudoapt-get install libgdbm-dev

 storm文档(12)----自己搭建storm集群_第10张图片

注:安装gdbm之后,不需要再安装dbm

 

4)安装readline(GNU,用于编辑命令行,当前使用者:GDB,VI,Emacs等)

         查找并安装readline:

         sudoapt-get install  libreadline-dev

 storm文档(12)----自己搭建storm集群_第11张图片

5)安装_sqlite3(SQL 数据库引擎的C)

       安装: libsqlite3-dev

 storm文档(12)----自己搭建storm集群_第12张图片

 

6)安装 _curses 和_curses_panel

         安装:  libncurses5-dev


3、安装失败的依赖库说明

以下为没有成功安装的依赖库:(并不是意味着安装失败,只是python2.6.6无法调用以下库)

 storm文档(12)----自己搭建storm集群_第13张图片

先将安装步骤列出如下:

1)安装_bsddb(pythoninterface for berkeley DB)

 

方法一:不成功

         搜索apt-cachesearch  bsddb

storm文档(12)----自己搭建storm集群_第14张图片

但是安装python-bsddb3和python-bsddb3-dbg之后,执行python的make发现依然提示没有_bsddb,于是到python官网搜索有关bsddb相关信息:

https://pypi.python.org/pypi?%3Aaction=search&term=bsddb&submit=search

 

方法二:不成功

依然不行,网上搜索发现有人先安装berkeley的db: libdb-dev

 storm文档(12)----自己搭建storm集群_第15张图片

方法三:

网上有说bsddb是一个很古老的berkeley DB模块,可以不必安装。

通过修改setup.py

disabled_module_list= ["bsddb185"]

依然失败

 

2)安装_hashlib(hash表)和 _ssl(信息安全、数据加密)

         搜索以及安装:sudoapt-get install libssl-dev

storm文档(12)----自己搭建storm集群_第16张图片

        

安装好libssl-dev后,编译python依然没有成功识别_ssl模块

 

安装openssl:sudo apt-get install openssl

结果依然无法成功调用 _ssl模块,以下所示:

 storm文档(12)----自己搭建storm集群_第17张图片

 3dlimageoplinuxaudiodevossaudiodev

       dl 是 32 位系统上的过时模块(被 ctypes 替代);

       imageop 也是 32 位系统上的过时模块,被 PIL 代替;

       linuxaudiodev是音频模块;

       ossaudiodev是音频模块;

       _tkinter是界面模块。

      

       这几个模块不用安装。

 

 

4、解决python版本冲突问题

         原本机器上本来就有python2.7,现在storm需要使用python2.6,如何解决版本冲突问题是需要解决的。

         搜索网上,提出两种解决办法:

(1)安装python版本管理工具 pythonbrew

         下载地址:https://pypi.python.org/pypi/pythonbrew/1.3.5

         下载解压,进入pythonbrew1.3.5

         阅读README.rst,按照推荐安装步骤进行:

         (1)curl -kLhttp://xrl.us/pythonbrewinstall | bash

                   需要安装依赖库: curl

                   sudoapt-get install curl

                   安装完curl之后,执行步骤(1)命令行,显示:

storm文档(12)----自己搭建storm集群_第18张图片

         (2)根据上面输出提示,将提示命令写入~/.bashrc末尾,即:

[[ -s"$HOME/.pythonbrew/etc/bashrc" ]] && source"$HOME/.pythonbrew/etc/bashrc"

 

         (3) 选择相应的版本号:

         pythonbrew  switch 2.6.6

 

注:重点推荐pythonbrew软件,希望各位在安装python之前就安装pythonbrew,可以使用pythonbrew安装想要的python版本。

 

(2)使用软链接:

本例中,python2.6.6安装在/usr/local/lib下,因此软链接可以为:

sudo ln -s/usr/bin/python   /usr/local/lib/python2.6.6/bin/python2.6

 

四、安装zeromq

1、安装 zeromq

(1)下载zeromq源码,版本号2.1.7

wget http://download.zeromq.org/zeromq-2.1.7.tar.gz

 storm文档(12)----自己搭建storm集群_第19张图片

报错,缺少 uuid-dev

 storm文档(12)----自己搭建storm集群_第20张图片

因此安装 sudo  apt-get install  uuid-dev

(2)编译安装:

make

make install

 

五、安装jzmq

(1)下载jzmq源码

https://github.com/zeromq/jzmq

执行 ./autogen.sh,报错:

 

需要安装 pkg-config

sudo apt-get install pkg-config

 

依然报错:


需要安装libtool

sudo apt-get install libtool

 

依然报错:


需要安装autoconf和automake:

sudo apt-get install automake  autoconf

在安装过程中自动安装了依赖库m4

 

./autogen.sh执行成功,生成configure

./configure

make 出错:

storm文档(12)----自己搭建storm集群_第21张图片

解决办法:http://my.oschina.net/mingdongcheng/blog/43009

1)首先在makefile所在路径以及src目录下都生成一个classdist_noinst.stamp空文件。

2)到src/org/zeromq目录下:javac  *.java

3)到src目录下:make  -j24; make install

4) 到makefile所在路径下: make-j24; make  install

 

 

 

六、storm安装以及配置过程:

 

1、下载可执行软件包:

http://storm.incubator.apache.org/downloads.html

 

2、启动过程:

参考storm官网:

http://storm.incubator.apache.org/documentation/Setting-up-a-Storm-cluster.html

 

(1)修改storm配置文件:

 storm文档(12)----自己搭建storm集群_第22张图片

(2)启动storm  nimbus:

bin/storm nimbus >/dev/null 2>&1 &

 


(3)启动 supervisor:

bin/storm supervisor >/dev/null 2>&1 &

 

(4)启动 ui:

bin/storm ui  >/dev/null 2>&1&

 

注意:

ui节点与nimbus节点最好位于同一节点

ui默认使用端口为8080,但是这个端口已经被tcp占用,因此需要修改ui.port参数,以防端口冲突。

 

(5)查看storm ui:

 storm文档(12)----自己搭建storm集群_第23张图片

你可能感兴趣的:(storm文档(12)----自己搭建storm集群)