安装
Storm
集群
这页概述Storm集群安装和运行的步骤。如果你在AWS,你应该检出 storm-deploy项目。 storm-deploy完全自动化准备,配置,和在EC2上安装Storm集群 。它还为您安装Ganglia,这样就可以监视CPU,磁盘和网络使用情况。
安装Storm集群的步骤概要:
1.
安装Zookeeper集群。
2.
安装Nimbus和worker机器下storm的依赖
。
3.
下载并解压Storm到Nimbus和worker机器。
4.
添加必要的配置到storm.yaml
文件
。
5.
使用“storm”脚本启动nimbus、supervisor
、ui守护程序。
安装Zookeeper集群
Storm使用 Zookeeper协调集群。Zookeeper不是用于传递消息,因此Storm给Zookeeper的负载是非常的低。对大多数案例,单个节点的Zookeeper集群应该足够了。如果你想要失效恢复(failover)或者部署大规模的storm集群,你也许想要大规模Zookeeper集群。Zookeeper部署说明在 这里。
Zookeeper部署注意事项:
1. zookeeper是快速失败的(fail-fast)系统,如果它遇到任务错误,进程将退出,所以对Zookeeper进行监管是非常关键的。使用 daemontools or SMF可以达到失效后自动报警和重启服务。更多细节看 这里。
2. 设置定时任务压缩 Zookeeper的数据和处理日志是非常关键的。 Zookeeper后台程序本身不处理这些事情,如果你没有设置定时任务,Zookeeper将很快用完磁盘空间。更多细节看 这里。
在nimbus和worker机器上安装依赖
接下来你需要在nimbus和worker机器上安装storm依赖。依赖包括:
1. ZeroMQ 2.1.7
2. JZMQ
3. Java 6
4. Python 2.6.6
5. unzip
这些版本的依赖和storm一起已经测试过。Storm与不同版本的JAVA或Python搭配时,有可能不能工作。
安装ZeroMQ 或 JZMQ时,遇到问题看Installing native dependencies.
下载并解压Storm到Nimbus和Worker机器
接下来,下载Storm并解压压缩包到Nimbus和每一台worker机器。下载地址看 这里。
添加必要的配置到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集群使用不同于默认的端口,你应该设置
storm.zookeeper.port
。
2)
storm.local.dir
:
Nimbus
和
Supervisor
守护程序需要一个本地磁盘目录存储小量状态(像
jars
,
confs
,其它)。你应该在每台机器都创建这些目录,赋予足够权限,并且在配置中设置目录位置。例如:
storm.local.dir: "/mnt/storm"
3)
java.library.path
:
这是
Storm
使用的本地库(
ZeroMQ
和
JZMQ
)载入路径。大多数安装,默认路径"/usr/local/lib:/opt/local/lib:/usr/lib"就行,所以你可能不需要配置它。
4)
nimbus.host
:
Worker
节点需要知道哪个机器是
Master
,以便下载
topology jars
和
confs。例如:
nimbus.host: "111.222.333.44"
5)
supervisor.slots.ports:
每一台
worker
机器,你用这个配置来指定多少
workers
运行在那台机。每个
worker
使用单一端口接收消息,并且这个设置定义哪个商品是打开的且可以使用。如果你定义
5
个端口,那么
Storm
将在这台机分配
5
个
worker
运行。如果你定义
3
个端口,
Storm
将仅运行
3
个
worker
。默认情况,这个设置是配置
4
个
worker
运行在端口6700, 6701, 6702, 和 6703。例如:
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
启动Storm
最后一步,启动
Storm
相关守护程序
。运行
supervision
下的每一个守护程序是特别关键的一点。
Storm
是一个快速失败(
fail-fast
)的系统,这意味着这些进程随时都可能因发生错误而停止。由于
Storm
的设计,所以它随时停止都是安全的,当进程重新启动时正确的恢复。这是为什么
Storm
保持进程无状态的原因
--
如果
Nimbus
或
supervisors
重新启动,正在运行的
topologies
是不受影响的。下面是如何运行
storm
守护程序:
1
)
Nimbus
在master机器的supervision下运行命令”bin/storm nimbus”
2
)
Supervisor
在每个worker机器的supervision下运行命令”bin/storm supervisor”。Supervisor守护程序负责starting 和 stopping 那台机上的worker进程。
3
)
UI
运行supervision下的命令”bin/storm ui”来运行Storm UI(你能从浏览器访问一个站点,它提供集群和topologies的诊断信息)。在你的浏览器中输入” http://{nimbus host}:8080”访问UI。
守护程序把日志记录在每一个解压的
storm
下的
logs/
目录。
英文: https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster