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下载地址:
(2)选择Java SE 6并下载
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
(2) 配置zookeeperconfiguration file:
由于本集群中有10个节点,因此配置
三、安装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
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
错误二:
解决错误一之后,进行make,依然报错:
上述错误说明缺少依赖库:按照提示说明上述依赖库可以修改setup.py中的detect_modules()函数取消依赖,但由于无法预料不安装哪一个会出现何种结果,因此决定都安装,共18个依赖库。
依次安装:
1)安装 zlib(压缩库)
查找zlib库
安装:sudo apt-get install zlib1g-dev
查看是否安装成功,zlib没有出现说明安装成功,继续安装
2)安装bz2
查找bz2库(压缩库)
安装:sudoapt-get install libbz2-dev
3)安装gdbm(dbm是类unix系统的数据库,使用Hash保存非结构化数据,不支持SQL,gdbm是GNU版本的dbm)
查找gdbm并安装:
sudoapt-get install libgdbm-dev
注:安装gdbm之后,不需要再安装dbm
4)安装readline(GNU,用于编辑命令行,当前使用者:GDB,VI,Emacs等)
查找并安装readline:
sudoapt-get install libreadline-dev
5)安装_sqlite3(SQL 数据库引擎的C库)
安装: libsqlite3-dev
6)安装 _curses 和_curses_panel
安装: libncurses5-dev
3、安装失败的依赖库说明
以下为没有成功安装的依赖库:(并不是意味着安装失败,只是python2.6.6无法调用以下库)
先将安装步骤列出如下:
1)安装_bsddb(pythoninterface for berkeley DB)
方法一:不成功
搜索apt-cachesearch bsddb
但是安装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
方法三:
网上有说bsddb是一个很古老的berkeley DB模块,可以不必安装。
通过修改setup.py
disabled_module_list= ["bsddb185"]
依然失败
2)安装_hashlib(hash表)和 _ssl(信息安全、数据加密)
搜索以及安装:sudoapt-get install libssl-dev
安装好libssl-dev后,编译python依然没有成功识别_ssl模块
安装openssl:sudo apt-get install openssl
结果依然无法成功调用 _ssl模块,以下所示:
3)dl、imageop、linuxaudiodev、ossaudiodev
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)命令行,显示:
(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
报错,缺少 uuid-dev
因此安装 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 出错:
解决办法: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配置文件:
(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: