一、Storm大数据位置
解决方案 |
开发商 |
类型 |
描述 |
Storm |
|
流式处理 |
Twitter 的新流式大数据分析解决方案 |
S4 |
Yahoo! |
流式处理 |
来自 Yahoo! 的分布式流计算平台 |
Hadoop |
Apache |
批处理 |
MapReduce 范式的第一个开源实现 |
Spark |
UC Berkeley AMPLab |
批处理/流处理 |
支持内存中数据集和恢复能力的最新分析平台 |
Disco |
Nokia |
批处理 |
Nokia 的分布式 MapReduce 框架 |
HPCC |
LexisNexis |
批处理 |
HPC 大数据集群 |
二、Storm概念及组件
在Storm拓扑构建前我们先复习一下Storm概念及组件:
1. Nimbus:负责资源分配和任务调度。
2. Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程。
3. Worker:运行具体处理组件逻辑的进程。
4. Task:worker中每一个spout/bolt的线程称为一个task. 在storm0.8之后,task不再与物理线程对应,同一个 spout/bolt的task可能会共享一个物理线程,该线程称为xecutor。
5. Topology:storm中运行的一个实时应用程序,因为各个组件间的消息流动形成逻辑上的一个拓扑结构。
6. Spout:在一个topology中产生源数据流的组件。通常情况下spout会从外部数据源中读取数据,然后转换为topology内部的源数据。Spout是一个主动的角色,其接口中有个nextTuple()函数,storm框架会不停地调用 此函数,用户只要在其中生成源数据即可。
7. Bolt:在一个topology中接受数据然后执行处理的组件。Bolt可以执行过滤、函数操作、合并、写数据库等任何操作。Bolt是一个被动的角色,其接口中有个execute(Tuple input)函数,在接受到消