Apache Hadoop 是大数据处理与批处理的事实标准,而 Twitter Storm 则很快地成为实现大规模事件处理的一种标准。遗憾的是,直到最近,实现 Storm 和 Hadoop 所需要的集群在物理上仍然有所不同。上周,Yahoo开放运行在 Hadoop 集群上的 Storm——即 Storm-YARN 的源代码。
据 Yahoo! 介绍,相对于隔离的集群,实时处理(Storm)和批处理的结合具有很多优势:
- 提供了巨大的弹性潜力。实时处理的负载一般不恒定,而且是不可预测的。就其本身而言,为满足需求峰值,Storm 会需要更多资源。将 Storm 和批处理搭配使用,Storm 需要资源时可以从批处理作业那里窃取,当资源需求下降时再把资源还回去。Storm-YARN 为实现这一理念奠定了基础。
- 很多应用将 Storm 用于低延时处理,而将 Map/Reduce 用于批处理,同时,两者之间会共享数据。通过将 Storm 放到物理上更接近数据源和 / 或同一流水线中其他组件的地方,可以减少网络传输,进而减少获取数据的总开销。
Storm 与 YARN 的集成利用了Hadoop 的新型资源管理器 YARN :
Storm-on-YARN 支持 Storm 应用利用数以万计的 Hadoop 计算节点的计算资源。YARN 用来根据需求启动 Storm 应用的主节点——即 Nimbus,并支持 Nimbus 为 Storm 应用的工作节点(即 Supervisor)请求资源。
Storm-YARN 提供了标准的 Storm 配置文件,其中包括 YARN 的特定参数,支持配置初始启动的 Supervisor 数及为每个 Supervisor 分配的容器的内存大小。
此外,为支持 Hadoop 风格的安全机制,Yahoo! 还增强了 Storm,支持 Storm 应用直接访问存储在 HDFS 和 Hbase 上的 Hadoop 数据。
据 Loraine Lawson 介绍:
实时交付信息是 Hadoop 和其他大数据解决方案更有前景的应用之一。这一点很少被提及,这很遗憾,因为对很多组织而言,这是真正的致胜之道,对我们这些人也很有启示。
Storm 实现的实时事件处理,加上 Hadoop,再加上实时Hadoop 查询,它们的结合让我们离这一愿景又近了一步。
评论