安装Twitter Storm集群

安装Storm集群
这页概述Storm集群安装和运行的步骤。如果你在AWS,你应该检出storm-deploy项目。storm-deploy完全自动化准备,配置,和在EC2上安装Storm集群 。它还为您安装Ganglia,这样就可以监视CPU,磁盘和网络使用情况。
 
安装Storm集群的步骤概要:
1. 安装Zookeeper集群。
2. 安装Nimbus和worker机器下storm的依赖<font face="Courier New">。</font>
3. 下载并解压Storm到Nimbus和worker机器。
4. 添加必要的配置到storm.yaml文件
5. 使用“storm”脚本启动nimbus、supervisor<font face="Courier New">、ui守护程序。</font>
 
安装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.dirNimbusSupervisor守护程序需要一个本地磁盘目录存储小量状态(像jarsconfs,其它)。你应该在每台机器都创建这些目录,赋予足够权限,并且在配置中设置目录位置。例如:
       storm.local.dir: "/mnt/storm"
 
3)java.library.path这是Storm使用的本地库(ZeroMQJZMQ)载入路径。大多数安装,默认路径"/usr/local/lib:/opt/local/lib:/usr/lib"就行,所以你可能不需要配置它。
4)nimbus.hostWorker节点需要知道哪个机器是Master,以便下载topology jarsconfs。例如:
nimbus.host: "111.222.333.44"
 
5)supervisor.slots.ports: 每一台worker机器,你用这个配置来指定多少workers运行在那台机。每个worker使用单一端口接收消息,并且这个设置定义哪个商品是打开的且可以使用。如果你定义5个端口,那么Storm将在这台机分配5worker运行。如果你定义3个端口,Storm将仅运行3worker。默认情况,这个设置是配置4worker运行在端口6700, 6701, 6702, 和 6703。例如:
 
supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703
 
启动Storm
最后一步,启动Storm相关守护程序。运行supervision下的每一个守护程序是特别关键的一点。Storm是一个快速失败(fail-fast)的系统,这意味着这些进程随时都可能因发生错误而停止。由于Storm的设计,所以它随时停止都是安全的,当进程重新启动时正确的恢复。这是为什么Storm保持进程无状态的原因-- 如果Nimbussupervisors重新启动,正在运行的topologies是不受影响的。下面是如何运行storm守护程序:
1Nimbus
在master机器的supervision下运行命令”bin/storm nimbus”
 
2Supervisor
在每个worker机器的supervision下运行命令”bin/storm supervisor”。Supervisor守护程序负责starting 和 stopping 那台机上的worker进程。
 
3UI

运行supervision下的命令”bin/storm ui”来运行Storm UI(你能从浏览器访问一个站点,它提供集群和topologies的诊断信息)。在你的浏览器中输入 http://{nimbus host}:8080访问UI

 
守护程序把日志记录在每一个解压的storm下的 logs/目录。
 

相关推荐