第4章 安装和配置Storm
在本章,我们将引导读者安装和配置Storm(包括单机模式和分布式模式),还会帮助读者写出并执行第一个Storm上的实时处理任务。
本章主要包括以下内容
- Storm概述
- Storm架构和组件
- 安装和配置Storm
- 在Storm上实时处理任务
4.1 Storm概述
Storm是一款开源的、分布式的、弹性的实时处理引擎,由Nathan Marz于2010年末发明。Nathan Marz当时在BackType工作,在博客中他提到当时构建Storm遇到的挑战。
最初,实时处理被实现为消息队列的形式,然后使用Python或任何其他语言从队列中读取消息并逐个处理它们。然而这一方法面临着如下几个挑战。
- 在任何消息处理失败的情况下,必须将其放回队列中以进行重新处理。
- 始终保持队列和处理单元正常运行。
以下是Nathan提出的两个令人振奋的想法,它们使Storm能够成为一个高度可靠的实时处理引擎。
- 抽象:Storm是流式的分布式抽象。流可以并行地生成和处理。spout可以产生新的流,而bolt是流中的一个小处理单元。拓扑是顶级抽象。这里抽象的优点是不必担心内部正在发生的事情,例如,序列化/反序列化、在不同处理单元之间发送/接收消息等。用户可以专注于编写业务逻辑。
- 保证消息处理算法是第二个想法。Nathan开发了一种基于随机数和XOR的算法,该算法只需要大约20字节就可以跟踪每个spout元组,而不管下游触发了多少个处理单元。
2011年,BackType被Twitter收购。Storm在公开论坛上流行之后,开始被称为“实时Hadoop”。2011年9月,Nathan正式发布了Storm。2013年9月,他正式提议在Apache孵化器中使用Storm。2014年9月,Storm成为Apache的顶级项目。 ...
Get 实时数据处理和分析指南 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.