Storm安装问题总结

安装Storm需要一些依赖软件:

1. uuid-dev
2. ZeroMQ
2.1.7 - Note that you should not install version 2.1.10, as that version has some serious bugs that can cause strange issues for a Storm cluster. In some rare cases, users have reported an "IllegalArgumentException" bubbling up from the ZeroMQ code when using 2.1.7 – in these cases downgrading to 2.1.4 fixed the problem.
3. JZMQ
4. Java 6
5. Python 2.6.6
6. unzip
7. Storm

其中最重要的是1~3,其余一般linux机器上都会安装。

uuid-dev是ZeroMQ所依赖的包,下载地址为https://www.kernel.org/pub/linux/utils/util-linux/v2.21/

ZeroMQ是一个底层的分布式通讯框架,下载地址为http://download.zeromq.org/  下载2.1.7版本

安装步骤:

1 cd ~/zeromq-2.1.7
2 ./autogen.sh
3 ./configure (如果你没有root或者sudo权限,可以使用./configure --prefix=/home/user-name --exec_prefix=/home/user-name --libdir=/home/user-name/libpath --includedir=/home/user-name/includepath,此前需要在本地环境变量文件.bashrc中配置pkgconfig文件夹路径,例如export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/admin/.lib/pkgconfig,最终libzmq.so会在你指定的libdir中生成)
4 make
5 sudo make install
6. sudo ldconfig 命令会将libzmq.so文件更新到ld.so.cache中(如果你的so包不是安装在标准目录,不用执行此步)

JZMQ是使用Java调用ZeroMQ的代理,下载地址为https://github.com/nathanmarz/jzmq/archive/master.zip

安装步骤:

1 cd ~/jzmq
2 ./autogen.sh
3 ./configure (如果你没有root或者sudo权限,可以使用./configure --prefix=/home/user-name  --exec_prefix=/home/user-name --libdir=/home/user-name/libpath,最终libjzmq.so会在你指定的libdir中生成,zmq.jar会在prefix指定的路径下的share/java/文件夹下生成)
4 make 
5 sudo make install

最终的zmq.jar文件会在目录/usr/local/share/java/下生成。

Storm的下载地址为:http://storm-project.net/downloads.html

安装步骤说明:https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster

问题说明:

1. 安装JZMQ执行.configure可能会有如下报错信息:

checking for ZeroMQ... no
checking zmq.h usability... yes
checking zmq.h presence... yes
checking for zmq.h... yes
checking for zmq_init in -lzmq... no
configure: error: cannot link with -lzmq

第一个no是因为在环境变量PATH中找不到libzmq.so这个包,只要修改公共环境变量/etc/profile,将libzmq.so所在的路径(一般会在/usr/local/lib或者/lib目录,如果没有,查看你的zeromq根目录下的src/.libs/下面有没有libzmq.so文件,如果有的话,执行/sbin/ldconfig -n .,如果没有,说明zeromq没有正常编译链接)加入环境变量即可,如果你无权修改公共环境变量,也可修改本地用户环境变量.bashrc文件,然后执行以下source .bashrc即可更新,重新执行configure,然后第一个no就会变成yes

至于第二个no,查看执行configure后生成的config.log日志文件可以看到如下错误:

configure:19738: g++ -o conftest -g -O2 -D_REENTRANT -D_THREAD_SAFE  -I/usr/local/include    -L/usr/local/lib -lzmq   conftest.cc -lzmq  >&5
 710 /usr/local/lib/libzmq.so: undefined reference to `uuid_generate@UUID_1.0'
 711 /usr/local/lib/libzmq.so: undefined reference to `uuid_unparse@UUID_1.0'

由此可知是链接的时候找不到libuuid这个包,因此需要修改一下configure文件,在链接命令中添加包依赖-luuid

line 19714: LIBS="-lzmq -luuid $LIBS"

保存退出后再次执行.configure命令,可以看到一切正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值