linux(centos)下搭建Storm(0.8.1)集群(很长,但很详细!!!)


linux(centos)下搭建Storm(0.8.1)集群(很长,但很详细!!!)
安装步骤如下:
1.搭建Zookeeper集群;
2.安装Storm依赖库(ZeroMQ、JZMQ);
3.下载并解压Storm发布版;
4.修改storm.yaml配置文件;
5.启动各台机器上的Storm各个后台进程;
注意:在每台机器上都要安装如下软件!!!
一、搭建Zookeeper集群
(安装Zookeeper之前确保已安装JDK,并配置JAVA_HOME,可使用 echo $JAVA_HOME查看)
 1.下载Zookeeper,官方下载链接为http://hadoop.apache.org/zookeeper/releases.html,并解压至
 /opt/zookeeper目录下。
 2.在 /opt/zookeeper/conf 目录下创建配置文件 zoo.cfg,内容如下:
    tickTime=2000
    dataDir=/opt/zookeeper/data/ #zookeeper数据文件存放目录
    clientPort=2181               #zookeeper通信端口
    initLimit=5
    syncLimit=2
    server.1=zoo1:2888:3888            #zoo1是主机1的hostname,zoo2...zoo3...
    server.2=zoo2:2888:3888            #2888 是连接leader的端口, 3888是leader选举的端口
    server.3=zoo3:2888:3888           
3.在各主机的上述 dataDir目录下创建myid文件,文件内容只包含server.id(如:server.1)中对应的id编号;
4.在各主机上启动zookeeper服务,进入 /opt/zookeeper/bin/,运行 zkServer.sh start;
5.测试Zookeeper是否正确安装,命令如下:
    zkCli.sh -server zoo1:2181
    zkCli.sh -server zoo1:2181
    zkCli.sh -server zoo1:2181

二、安装Storm依赖库
 按下来要在Nimbus和Supervisor机器上安装Storm的依赖库,具体步骤:
 注意:不保证使用其他版本能正常运行Storm,Storm测试的依赖库版本如下:
        zeromq-2.1.7 jdk 1.6 python 2.6.6
 1.安装ZMQ,命令如下
 cd /opt
 wget http://download.zeromq.org/zeromq-2.1.7.tar.gz
 tar -xzf zeromq-2.1.7.tar.gz
 cd zeromq-2.1.7
 ./configure
 make
 make install
 如果我没有预料错的话,你一定不会一帆风顺,可能会遇到如下错误
 1.1 缺少 uuid-devel 库
    configure: error: cannot link with -luuid, install uuid-dev.
    这时你需要运行:
    yum install uuid.x86_64
    yum install libuuid.x86_64
    yum install libuuid-devel.x86_64
1.2 Insufficient space in download directory /var/cache/yum/x86_64/6/base/packages(磁盘空间不足)
    原因:
    你的磁盘已经满了,不信使用 df -h 查看,使用情况是 100%
    解决方法:
    a.手动删除一些日志文件
    b.试一下 yum clean all ,清空 yum 缓存。
Attention:如果还没有安装成功,要注意查看命令打印出的错误信息。
三、安装JZMQ
    如果我没有猜错的话,你可能没有安装 git 依赖包,安装命令如下:
    yum install git.x86_64
    接着运行:
    cd /opt
    git clone https://github.com/nathanmarz/jzmq.git
    cd jzmq
    ./autogen.sh
    ./configure
    make
    make install
    当然,这一步你也不一定能顺利进行,可能会遇到如下依赖包缺少错误:
    a.autogen.sh: error: could not find libtool.  libtool is required to run autogen.sh.
    解决方法:
    yum install libtool.x86_64
四、安装Python2.6.6
    cd  /opt
    wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tar.bz2

    tar –jxvf Python-2.6.6.tar.bz2
    cd Python-2.6.6
    ./configure
    make
    make install
    测试是否成功:
    python -V
    打印:Python 2.6.6
五、安装 unzip
    yum install unzip
六、下载并解压Storm 0.8.1
    cd /opt
    mkdir storm
    cd /storm
    wget https://github.com/downloads/nathanmarz/storm/storm-0.8.1.zip
    unzip storm-0.8.1.zip
    接下来进行配置了
    cd /opt/storm/conf
    vi storm.yaml
    修改后的内容如下(注意:请将如下代码原封不动的拷过去,然后再修改,不要删除内容中的任何空格,否则启动时会报解析错误):
########### These MUST be filled in for a storm configuration
 storm.zookeeper.servers:
     - "zoo1"
     - "zoo2"
     - "zoo3"

 storm.zookeeper.port: 2181 #上述配置的zookeeper端口

 storm.local.dir: "/opt/storm/workdir" #请自行创建该目录

 storm.local.mode.zmq: true

 nimbus.host: "zoo1"    #nimbus主机,等同于hadoop中的master

 supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703
 ui.port: 8888    #storm UI 端口,默认为8080

七、启动Storm集群
在 zoo1 上运行:
    cd /opt/storm/bin
    storm nimbus
    另起一个窗口
    storm supervisor
    再起一个窗口
    storm ui
在 zoo2,zoo3上运行:
    cd /opt/storm/bin
    storm supervisor
此时访问 http://zoo1:8888/ 就可以看到Storm UI 的界面了。
如果不出意外,你还会看到这个错误:
eternal Server Error
org.apache.thrift7.transport.TTransportException: java.net.ConnectException: Connection refused
    at org.apache.thrift7.transport.TSocket.open(TSocket.java:183)
    at org.apache.thrift7.transport.TFramedTransport.open(TFramedTransport.java:81)
    at backtype.storm.thrift$nimbus_client_and_conn.invoke(thrift.clj:56)
解决方法:
需要在客户端机器(zoo1,zoo2,zoo3)上配置 ~/.storm/storm.yaml
命令如下:
  cd /opt/storm
  mkdir ~/.storm
  cp ../conf/storm.yaml  ~/.storm/storm.yaml
 再重新启动Storm集群,你就可以看到可爱的Storm UI 界面了。
 当然,如果仍然没有看到,请检查 /opt/storm/logs文件中的详细信息。
 欢迎转载,请注明出处:http://blog.csdn.net/ytmfnfge/article/details/34090827 谢谢!

相关内容