storm集群安装部署

 

1.storm集群架构

storm利用了分布式系统中经典的master/slave架构html

主控节点:这里称之为nimbus,负责在集群分发任务(Topology)的代码以及监控等。java

工做节点:这里称之为Supervisor,工做节点跟传动主从不一样之处在于,其并非本身直接执行任务。在接受到一个任务的时候,Supervisor会启动一个或多个进程(称之为worker),来处理任务。因此实际上,任务最终都是分配到了worker上。python

2.storm集群环境的搭建

须要一下环境:git

zookeeper集群github

java 6 以上apache

Python 2.6.6 以上架构

ZMQ 2.1.7app

JZMQ 分布式

1.安装zookeeper集群:

Storm使用Zookeeper协调集群,因为Zookeeper并不用于消息传递,因此Storm给Zookeeper带来的压力至关低。大多数状况下,单个节点的Zookeeper集群足够胜任,不过为了确保故障恢复或者部署大规模Storm集群,可能须要更大规模节点的Zookeeper集群。具体安装步骤这里不作描述。测试

2.java安装:

下载jdk包 解压,配置环境变量。具体步骤这里不作描述。

3.Python安装:

下载:

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

4.ZMQ安装:

下载解压安装:

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
sudo make install

安装过程当中可能会发现须要安装其余类库,我这里面安装时提示须要uuid,安装便可

yum install libuuid-devel

5.JZMQ安装:

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

3. 安装storm

1. 下载解压

安装完成所需的依赖以后,咱们终于能够安装storm。根据开发的软件选择合适版本的storm安装。这里选择的是storm-0.9.7发布版

下载解压:

wget http://mirror.bit.edu.cn/apache/storm/apache-storm-0.9.7/apache-storm-0.9.7.tar.gz
tar -xvzf apache-storm-0.9.7.tar.gz

2.配置

配置conf/storm.yaml文件,storm有默认配置文件,storm.yaml中的配置项会覆盖默认配置,经过如下连接能够查看默认配置:https://github.com/apache/storm/blob/master/conf/defaults.yaml

这里须要修改的配置项有(每个配置项前面要留一个空格):

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

storm.zookeeper.servers:
   - "192.168.1.112"
   - "192.168.1.113"

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

storm.local.dir: "/opt/storm/data"

nimbus.host: Storm集群Nimbus机器地址.

nimbus.host: "192.168.1.112"

supervisor.slots.ports: 对于每一个Supervisor工做节点,须要配置该工做节点能够运行的worker数量。每一个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认配置有4端口可用,若是需改变或更多能够进行配置。

supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703

ui.port: storm为咱们提供了一个后台程序,能够监控资源运行状态,该端口配置用于咱们访问管理页面。http://192.168.1.111:8088/index.html

ui.port: 8088

3.启动后台进程

  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的运行状态等信息。

      能够在logs目录下查看每一个后台程序的启动日志。

4.提交Topology到集群中

提交命令

storm jar path/to/allmycode.jar(jar包路径) path.main.class(主类main) arg1 arg2 arg3(main方法参数)

这里提交命令:

./apache-storm-0.9.7/bin/storm jar Getting-Started-0.0.1-SNAPSHOT-jar-with-dependencies.jar sfpay.TopologyMain wordcountapp

查看运行状态:

./bin/storm list
Topology_name        Status     Num_tasks  Num_workers  Uptime_secs
-------------------------------------------------------------------
wordcountapp         ACTIVE     4          1            3707
相关文章
相关标签/搜索