首页 > 代码库 > storm集群部署

storm集群部署

storm集群部署:

运行环境:CentOS release 6.3 (Final)

  • 搭建Zookeeper集群;

  • 安装Storm依赖库;

  • 下载并解压Storm发布版本;

  • 修改storm.yaml配置文件;

  • 启动Storm各个后台进程。

ip主机名
主控节点:192.168.1.147zoo1
工作节点1:192.168.1.142zoo2
工作节点2:192.168.1.143zoo3

Zookeeper集群搭建在上一篇文章已经写过了,直接进行下一步安装storm依赖库。

  • 安装storm依赖库

安装ZMQ 2.1.7

wget http://download.zeromq.org/zeromq-2.1.7.tar.gz
tar -xzf zeromq-2.1.7.tar.gz cd zeromq-2.1.7./configuremake
make install

注意事项:

 如果安装过程报错uuid找不到,则通过如下的包安装uuid库:

# yum install uuid* -y
# yum install e2fsprogs* -y
# yum install libuuid* -y

 

安装JZMQ

下载后编译安装JZMQ:

git clone https://github.com/nathanmarz/jzmq.git
cd jzmq ./autogen.sh./configuremake
make install

注意事项:

安装git客户端

# yum install git git-gui -y

操作中出现的问题:
git clone https://github.com/nathanmarz/jzmq.git
Cloning into ‘jzmq‘...
error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/nathanmarz/jzmq.git/info/refs?service=git-upload-pack
fatal: HTTP request failed
解决方法:
env GIT_SSL_NO_VERIFY=true git clone https://github.com/nathanmarz/jzmq.git

2.2.3 安装Java 6

1. 下载并安装JDK 6,参考这里;

2. 配置JAVA_HOME环境变量;

3. 运行java、javac命令,测试java正常安装。

2.2.4 安装Python2.6.6

1. 下载Python2.6.6:

 http:

2. 编译安装Python2.6.6:

 –jxvf Python-..-./

3. 测试Python2.6.6:

$ python -.

 安装unzip

yum install unzip -y

 

下载并解压Storm发布版本

下一步,需要在Nimbus和Supervisor机器上安装Storm发行版本。

1. 下载Storm发行版本,推荐使用Storm0.8.1:

 https:

2. 解压到安装目录下:

 storm-..

修改storm.yaml配置文件

Storm发行版本解压目录下有一个conf/storm.yaml文件,用于配置Storm。默认配置在这里可以查看。conf/storm.yaml中的配置选项将覆盖defaults.yaml中的默认配置。以下配置选项是必须在conf/storm.yaml中进行配置的:

主控节点配置:

storm.zookeeper.servers:

  - "192.168.1.147"

  - "192.168.1.142"

  - "192.168.1.143"

storm.local.dir: "/home/admin/storm/workdir"

 配置解释:

storm.zookeeper.servers:  Storm集群使用的Zookeeper集群地址

storm.local.dir:Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限。

 

工作节点1、2配置一样:

storm.zookeeper.servers:

  - "192.168.1.147"

  - "192.168.1.142"

  - "192.168.1.143"

storm.local.dir: "/home/admin/storm/workdir"

nimbus.host: "192.168.1.147"

supervisor.slots.ports:

    - 6700

    - 6701

    - 6702

    - 6703

 配置解释:

storm.zookeeper.servers:Storm集群使用的Zookeeper集群地址

storm.local.dir: "/home/admin/storm/workdir":Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限。

 nimbus.host:  Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,以便下载Topologies的jars、confs等文件

 supervisor.slots.ports: 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口

 

启动Storm各个后台进程:

 

以下是启动Storm各个后台进程的方式:

  1. Nimbus: 在Storm主控节点上运行 bin/storm nimbus >/dev/null 2>&1 & 启动Nimbus后台程序,并放到后台执行;

  2. Supervisor: 在Storm各个工作节点上运行 bin/storm supervisor >/dev/null 2>&1 & 启动Supervisor后台程序,并放到后台执行;

  3. UI: 在Storm主控节点上运行 bin/storm ui >/dev/null 2>&1 & 启动UI后台程序,并放到后台执行,启动后可以通过http://{nimbus host}:8080观察集群的worker资源使用情况、Topologies的运行状态等信息。

 

注意事项:

  1. Storm后台进程被启动后,将在Storm安装部署目录下的logs/子目录下生成各个进程的日志文件。

  2. 经测试,Storm UI必须和Storm Nimbus部署在同一台机器上,否则UI无法正常工作,因为UI进程会检查本机是否存在Nimbus链接。

  3. 为了方便使用,可以将bin/storm加入到系统环境变量中。

至此,Storm集群已经部署、配置完毕,可以向集群提交拓扑运行了。

 

向集群提交任务

1)启动Storm Topology:

storm jar allmycode.jar org.me.MyTopology arg1 arg2 arg3

其中,allmycode.jar是包含Topology实现代码的jar包,org.me.MyTopology的main方法是Topology的入口,arg1、arg2和arg3为org.me.MyTopology执行时需要传入的参数。

2)停止Storm Topology:

storm kill {toponame}

其中,{toponame}为Topology提交到Storm集群时指定的Topology任务名称。

 

 

 

本文出自 “david0512” 博客,请务必保留此出处http://gjr0512.blog.51cto.com/6518687/1590746

storm集群部署