分布式实时数据处理框架——Storm
1. Storm 集群
1.1 Storm 版本变更
版本 | 编写语言 | 重要特性 | HA 高可用 |
---|---|---|---|
0.9.x | java+clojule | 改进与Kafka、HDFS、HBase的集成 | 不支持,storm集群只支持一个nimbus节点 |
0.10.x | 1. 增强安全性和多用户调度部署 2. 更加方便版本升级 3. Storm 0.10.0集成了Flux框架,该框架能使Storm拓扑的定义和部署变得更加简洁方便 4. 新的分组策略:局部关键词分组策略 5. 改进型日志框架 6. 与Apache Hive的整合 7. 支持Redis 8. JDBC/RDBMS的整合 |
支持,storm集群可以支持多个nimbus节点,其中有一个为leader,负责真正运行,其余的为offline | |
1.x.x | 1. 性能提升,Storm 1.0的速度能够提升至16倍 2. Pacemaker-心跳服务器 3. 分布式缓存API 4. Nimbus的HA高可用 5. 原生本地流式窗口API 6. 状态管理-自动Checkpoint的有状态的Bolt 7. 自动反压机制 8. 资源感知调度器 9. 动态的日志等级 10. Tuple采样和调试 11. 分布式的日志查找 12. 动态的Worker性能分析 |
||
2.x.x | java | STORM::Wave Creator、STORM::Ice Blast、STORM::sandMan、STORM::Unfold、STORM::Volume Lattic、STORM::Tree、... |
1)、python 2.6 及以上(centos 6.8 系统自带),如本机:
[root@node01 ~]# python
Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
[root@node01 ~]#
2)、JDK 1.7及以上,并配置环境变量;
3)、集群之间 ssh 免密登录;
4)、zookeeper 集群,Storm 集群是依赖于zookeeper的。
1.3 Storm 集群安装
1)、下载 Storm 的安装包 http://storm.apache.org/downloads.html,这里使用apache-storm-1.0.2.tar.gz;
2)、上传到某一节点并解压;
3)、修改配置文件
cd apache-storm-1.0.2/conf
vim storm.yaml
修改:
# Storm 集群对应的 ZooKeeper 集群的主机列表
storm.zookeeper.servers:
- "node01"
- "node02"
- "node03"
# HA高可用时可以指定多个nimbus主节点
nimbus.seeds: ["node01","node02"]
# 注意:nimbus.seeds指定的时候最好指定主机名,否则在webui界面查询的时候会重复显示节点信息。
# 使用的本地文件系统目录(必须存在并且 Storm 可读写)
storm.local.dir: "/usr/local/storm/data"
#superviso 上能够运行 workers 的端口列表,每个 worker占用一个端口,且每个端口只运行一个 worker,通过这项配置可以调整每台机器上运行的 worker 数
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
4)、将 Storm 发送到其它节点。
1.4 启动 Storm 集群
1)、事先启动zookeeper集群;
2)、启动 nimbus 节点
node01、node02:
bin/storm nimbus
后台启动不占用命令行:nohup bin/storm nimbus >/dev/null 2>&1 &
3)、启动 Supervisor 节点,打开另一个终端窗口
node02、node03:
bin/storm supervisor
后台启动不占用命令行:nohup bin/storm nimbus >/dev/null 2>&1 &
4)、启动 UI,再打开另一个终端窗口
node01:
bin/storm ui
后台启动不占用命令行:nohup bin/storm nimbus >/dev/null 2>&1 &
- 启动 Storm 用户界面应用程序后,在浏览器中键入 http:// node01:8080,可以看到 Storm 集群信息及其运行的拓扑,图示如下
5)、关闭 Storm 集群
上述第一种启动防止可以直接关闭终端窗口或 ctrl+c 关闭,第二种启动方式前期请直接杀死进程。