Storm是Twitter开源的分布式实时大数据处理框架,最早开源于github,从0.9.1版本之后,归于Apache社区,被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统(高频交易、股票)等等,大数据实时处理解决方案(流计算)的应用日趋广泛,目前已是分布式技术领域最新爆发点,而Storm更是流计算技术中的佼佼者和主流。
Storm程序在Storm集群中运行的示例图如下:
一个Zookeeper集群负责Nimbus和多个Supervisor之间的所有协调工作(一个完整的拓扑可能被分为多个子拓扑并由多个supervisor完成)
此外,Nimbus后台程序和Supervisor后台程序都是快速失败(fail-fast)和无状态的;所有状态维持在Zookeeper或本地磁盘。这意味着你可以kill -9杀掉nimbus进程和supervisor进程,然后重启,它们将恢复状态并继续工作,就像什么也没发生。这种设计使storm极其稳定。这种设计中Master并没有直接和worker通信,而是借助一个中介Zookeeper,这样一来可以分离master和worker的依赖,将状态信息存放在zookeeper集群内以快速恢复任何失败的一方
主机名 | IP | zookeeper | 角色 | 版本 |
c1.heboan.com | 192.168.48.128 | √ | Nimbus /UI | apache-storm-1.2.3.tar.gz |
c2.heboan.com | 192.168.48.129 | √ | Supervisor | |
c3.heboan.com | 192.168.48.130 | √ | Supervisor |
Storm使用zookeeper来协调集群,zookeeper不用于消息传递,因此Sorm对zookeeper的负载非常低。对于大多数情况,单节点zookeeper集群应该足够,但是如果要进行故障转移或者部署大型Storm集群,则可需要部署更大的Zookeeper集群。
这里在上面主机上部署3个节点的zk集群,部署方法点击我
下载Storm,并解压到部署目录
wget http://mirror.bit.edu.cn/apache/storm/apache-storm-1.2.3/apache-storm-1.2.3.tar.gz tar xf apache-storm-1.2.3.tar.gz -C /opt/service/ cd /opt/service/ ln -s apache-storm-1.2.3 storm
配置storm.yaml
conf/storm.yaml是 storm配置文件,storm.yaml会覆盖defaults.yaml中的任何内容
1)storm.zookeeper.servers:这是Storm集群的Zookeeper集群中的主机列表
storm.zookeeper.servers: - "c1.heboan.com" - "c2.heboan.com" - "c3.heboan.com"
2)storm.local.dir:Nimbus和Supervisor守护进程需要本地磁盘上的一个目录来存储少量状态(如jar,confs和类似的东西), 如果该目录不存在,会自动创建
storm.local.dir: "/opt/service/storm/status"
3) nimbus.seeds: 指定numbus主机
nimbus.seeds: ["c1.heboan.com"]
4)supervisor.slots.ports:对于每个工作者计算机,您可以使用此配置配置在该计算机上运行的工作程序数。每个工作人员使用单个端口接收消息,此设置定义哪些端口可以使用。如果您在此处定义了五个端口,那么Storm将分配最多五个工作人员在此计算机上运行。如果您定义了三个端口,Storm最多只能运行三个端口。默认情况下,此设置配置为在端口6700,6701,6702和6703上运行4个工作程序, 可以根据实际情况增加或减少,例如:
supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703
5)配置web ui监听的端口
ui.port: 8888
6)jvm配置, 根据实际情况进行配置
nimbus.childopts: "-Xmx4096m" supervisor.childopts: "-Xmx4906m" worker.childopts: "-Xmx8096m" ui.childopts: "-Xmx1024m"
配置完成了,把程序拷贝到其他两个节点
scp -r storm 192.168.48.129:/opt/service/ scp -r storm 192.168.48.130:/opt/service/
原文:https://www.cnblogs.com/sellsa/p/11319586.html