storm文档(11)----搭建storm集群

源地址:http://storm.apache.org/documentation/Setting-up-a-Storm-cluster.html

 

本文叙述了storm集群搭建和运行步骤。如果你打算在AWS上进行的话,可以使用storm-deploy项目。storm-deploy在EC2上完全自动进行下载、配置、以及storm集群的安装等步骤。它也为你配置了Ganglia,用以监控CPU、disk、以及网络使用状况。

 

如果使用storm集群时遇到困难,可以求助于Troubleshooting,或者是发邮件给邮件列表。

 

下面是配置storm集群步骤的汇总:

 

1、配置storm集群

2、安装Nimbus和worker机器的依赖库

3、下载并解压storm release版本到Nimbus和worker机器上

4、填写storm.yaml中必选项

5、使用storm脚本以及你选择的supervisor启动supervision下的守护进程

 

 

配置zookeeper集群

 

storm使用zookeeper用来协调集群。 zookeeper不是用来传输消息的,因此storm位于zookeeper上负载很低。 单节点的zookeeper集群应该可以满足大部分情况,但是在storm集群很大的情况下,可能就需要大一点的zookeeper集群,这需要用户自己去做权衡。这里是部署zookeeper的步骤。

 

下面是有关zookeeper部署的注意事项:

 

1、要点一,必须在supervison下运行zookeeper,因为zookeeper是快速失败的,因此在遇到错误时会退出运行。 更多细节请看这里。

 

2、要点二,配置cron压缩zookeeper数据以及事务日志。 zookeeper守护进程自身没有这样做, 如果你没有配置cron,zookeeper讲很快溢出(超出磁盘空间),更多细节请看这里。

 

 

在Nimbus和worker机器上安装依赖库

 

下面,你需要在Nimbus和worker机器上安装storm的依赖组件。

它们是:

          1、 Java 6

          2、Python 2.6.6   (译者注: 这真是一个噱头,我按照要求想安装python2.6.6,但是发现2.6.6根本不可能完全安装,里面很多模块已经被抛弃了,浪费了我大量时间)

这些版本已经使用storm测试过。 使用其他不同的版本, storm可能不工作。

 

 

下载并加压storm release版本到 Nimbus和worker机器上

 

下面,下载storm release版本,然后解压zip文件,并将它们放置在Nimbus和每个worker机器上。 storm release版本下载。

 

 

填写storm.yaml中的必选项

 

storm的配置文件在conf文件夹下的storm.yaml, 它配置了storm的守护进程。 这里是默认配置。storm.yaml可以覆盖defaults.yaml中任何设置。下面是获得工作集群的一些必选项:

1) storm.zookeeper.servers:这是为storm集群服务的zookeeper集群的主机列表,它配置方式如下所示:

 

storm.zookeeper.servers:

    - “111.222.333.444"

    - "555.666.777.888"

 

如果zookeeper集群使用的port不是默认的,需要设置storm.zookeeper.port。

 

2)storm.local.dir: Nimbus和Supervisor守护进程需要在本地磁盘中一个目录,用来保存少量的状态信息(例如jars、confs、以及诸如此类的东西)。你可以在每台机器上创建目录,并设置适当的权限,然后将这个目录填到配置文件中。例如:

 

storm.local.dir: "/mnt/storm"

 

3)nimbus.host: worker 节点需要知道哪台机器是master,这样就可以下载topology jars和confs。例如:

 

nimbus.host: ”111.222.333.444“

 

4)supervisor.slots.ports: 对于每台机器来说, 你可以使用这个配置选项来配置每台机器上有多少个worker运行。 每台worker使用单独的port来接受消息, 这个设置定义了哪个port用来使用。 这里定义了5个ports,storm也就分配5个works在这台机器上运行。 如果你定义3个ports, storm将最多运行3个works。默认情况下,它将被设置为4个Ports,即运行4个workers,端口分别为:6700,6701,6702,6703。例如:

 

supervisor.slots.ports:

        - 6700

        - 6701

        - 6702

        - 6703

 

 

使用“storm”脚本运行supervision下的守护进程以及你选择的supervisor

 

最后一步是运行所有storm守护进程。 关键是运行supervision下每个守护进程。 storm是快速失败的系统,这就意味着当任何意外发生时,都有可能导致进程中止。storm这样设计是为了,可以再任何时刻安全的中止,然后当程序重启时可以正确的恢复。 这就是storm在进程内保持无状态的原因---如果Nimbus或者Supervisors重启, 运行topologies不受影响。 下面是如何运行storm守护进程:

 

1、Nimbus: 在master机器的supervision下运行命令行:   bin/storm    nimbus

 

2、Supervisor: 在每台worker机器上的supervison下运行命令行: bin/storm supervisor   。supervisor守护进程负责启动他所在机器上worker进程。

 

3、UI: 通过命令行”  bin/storm  ui “运行 storm  ui (你可以通过storm提供网址,在浏览器上观察集群和topologies的统计信息)。UI可以通过网页浏览器访问网址:

http://{nimbus hots}:8080

你可能感兴趣的:(storm文档(11)----搭建storm集群)