译文地址:https://github.com/nathanmarz/storm/wiki/Rationale
过去十年已经见证了数据处理的变革。MapReduce,Hadoop,和相关技术已经让存储和原来不可想象的稳定处理数据成为了可能,但是不幸的是,这些数据处理技术不是实时的,他们本身也不是为了实时而产生的。不会有hack会将Hadoop变成实时系统,实时系统与批处理系统有着基本不同的要求。
然而大规模的实时数据处理正变得越来越成功商业的需求。Hadoop在的实时的缺乏已经成为数据处理生态系统中最大的缺陷。
storm补注了那个缺陷。
storm之前,你一般必须手动的构建一个网状的队列和进程来做实时处理。进程会处理来自队列的消息,更新数据库,和发送新的信息到别的队列以便进一步处理。不好的是这种方法有严重的限制。
1.你花费做实时处理的大部分时间来构建队列和进程的结构,部署进程和中间队列。其中实时处理的逻辑只占你代码的一小部分。
2.没有容错。
3.扩展难,当消息对单个进程或队列变的更高时,你需要切分数据。你必须重新配置别的进程来识别新的位置来发送信息。
storm解决了这些问题。