您的位置:首页 > 其它

storm集群安装部署

2017-09-24 00:00 253 查看

1.storm集群架构

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

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

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



2.storm集群环境的搭建

需要一下环境:

zookeeper集群

java 6 以上

Python 2.6.6 以上

ZMQ 2.1.7

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[/code] 解压安装:

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.启动后台进程

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

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

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: