搭建storm集群(apache-storm-0.9.5.tar.gz)
来源:互联网 发布:vr 刷新率 知乎 编辑:程序博客网 时间:2024/05/16 05:12
- Java 6
- Python 2.6.6
- $ python -V
- Python 2.6.6
3. 下载并解压Storm发布版本(我使用的是apache-storm-0.9.3)
1. 下载Storm发行版本
2. 解压到安装目录下:
- tar –zvxf apache-storm-0.9.5.tar.gz –C /usr/local/
- ln -s /usr/local/apache-storm-0.9.5/ /usr/local/storm
3.配置环境变量
- vi /etc/profile
- export STORM_HOME==/usr/local/storm
- export PATH=$STORM_HOME/bin:$PATH
- vi /etc/profile
- export STORM_HOME==/usr/local/storm
- export PATH=$STORM_HOME/bin:$PATH
4 修改storm.yaml配置文件
Storm发行版本解压目录下有一个conf/storm.yaml文件,用于配置Storm。默认配置在这里可以查看。conf/storm.yaml中的配置选项将覆盖defaults.yaml中的默认配置。以下配置选项是必须在conf/storm.yaml中进行配置的:
1) storm.zookeeper.servers: Storm集群使用的Zookeeper集群地址,其格式如下:
- 我的配置为:
- storm.zookeeper.servers:
- - “master"
- - “slave1"
- - "slave2"
如果Zookeeper集群使用的不是默认端口,那么还需要storm.zookeeper.port选项。
2) storm.local.dir: Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限。然后在storm.yaml中配置该目录,如:mkdir -p /usr/local/storm/data
- storm.local.dir: "/usr/local/storm/data"
- 注:需要首先创建data目录
3) nimbus.host: Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,以便下载Topologies的jars、confs等文件,如:
- 我的配置:
- nimbus.host: "master"
4) supervisor.slots.ports: 对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口,如:
- supervisor.slots.ports:
- - 6700
- - 6701
- - 6702
- - 6703
- supervisor.slots.ports:
- - 6700
- - 6701
- - 6702
- - 6703
最后配置完毕后:
最后一步,启动Storm的所有后台进程。和Zookeeper一样,Storm也是快速失败(fail-fast)的系统,这样Storm才能在任意时刻被停止,并且当进程重启后被正确地恢复执行。这也是为什么Storm不在进程内保存状态的原因,即使Nimbus或Supervisors被重启,运行中的Topologies不会受到影响。
以下是启动Storm各个后台进程的方式:
- Nimbus: 在Storm主控节点上运行 "storm nimbus &" 启动Nimbus后台程序,并放到后台执行;
- Supervisor: 在Storm各个工作节点上运行" storm supervisor &"启动Supervisor后台程序,并放到后台执行;
- UI: 在Storm主控节点上运行 "storm ui &" 启动UI后台程序,并放到后台执行,启动后可以通过http://192.168.8.94:8080/index.html观察集群的worker资源使用情况、Topologies的运行状态等信息。
注意事项:
- Storm后台进程被启动后,将在Storm安装部署目录下的logs/子目录下生成各个进程的日志文件。
- 经测试,Storm UI必须和Storm Nimbus部署在同一台机器上,否则UI无法正常工作,因为UI进程会检查本机是否存在Nimbus链接。
- 为了方便使用,可以将bin/storm加入到系统环境变量中。
至此,Storm集群已经部署、配置完毕,可以向集群提交拓扑运行了。
这时再打开浏览器http://192.168.8.94:8080/index.html,可以看到我们刚才提产的代码已经在集群中显示了。
2.6 FAQ
1)过程中发现storm ui显示supervisor个数与实际不符的解决
解决方法:在删除了local dir,重启后恢复了。
参考:
1. https://github.com/nathanmarz/storm/wiki/Tutorial
2. https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster
3.http://www.cnblogs.com/panfeng412/archive/2012/11/30/how-to-install-and-deploy-storm-cluster.html
- 搭建storm集群(apache-storm-0.9.5.tar.gz)
- 搭建storm集群(apache-storm-0.9.5.tar.gz) .
- Apache Storm 集群环境搭建
- storm文档(11)----搭建storm集群
- Storm(三)Storm集群搭建
- storm文档(11)----搭建storm集群
- Twitter Storm: 搭建storm集群
- storm-0.9.5集群搭建
- Storm(0.9.7)集群搭建
- Apache Storm集群架构
- Storm集群搭建、storm集群部署
- Storm集群搭建
- 搭建Storm集群
- Storm集群搭建
- Storm集群搭建
- storm集群环境搭建
- Storm集群搭建
- Storm集群搭建
- 使用vimdiff作为svn diff的查看代码工具
- Integer.valueOf(String) 方法之惑
- uva 1452(约瑟夫变形)
- 结构体字节对齐
- sql优化百万级以上的数据处理
- 搭建storm集群(apache-storm-0.9.5.tar.gz)
- javase
- rs.initiate(config); {"ok" : 0, "errmsg" : "couldn't initiate : need all members up to initiate, not
- iOS开发-Day2-C的复习
- Matrix67的KMP讲解
- Python脚本刷点击率。
- UITextView的那些坑
- servlet容器相关
- PowerDesigner列名、注释内容互换