Apache Storm 衍生项目之1 -- storm-yarn
欢迎转载,转载请注明出处,徽沪一郎。
概要
storm是一个近似于实时的计算框架,甩开hadoop上的原生mapreduce计算框架不只一条街。如果能将storm引入到hadoop中,对存储于hdfs的数据进行分析必然极大的提高处理性能。storm-yarn就是这样一个项目,由yahoo实现,目前已经开源。
除了storm-yarn试图将storm整合进hadoop,以提升hadoop的分析处理能力的尝试之外,Hortonworks也高调宣布在2014年推出整合了storm的hadoop发行版。当然Hortonworks的整合会基于storm-yarn,毕竟它们都属于yahoo系。
整合目的和优势
storm-yarn是来提升hadoop的处理分析能力,是对hadoop的增强,而非相反。
节选自Yahoo!开源运行在Hadoop上的Storm——Storm-YARN
- 提供了巨大的弹性潜力。实时处理的负载一般不恒定,而且是不可预测的。就其本身而言,为满足需求峰值,Storm会需要更多资源。将 Storm和批处理搭配使用,Storm需要资源时可以从批处理作业那里窃取,当资源需求下降时再把资源还回去。Storm-YARN为实现这一理念奠定 了基础。
- 很多应用将Storm用于低延时处理,而将Map/Reduce用于批处理,同时,两者之间会共享数据。通过将Storm放到物理上更接近数据源和/或同一流水线中其他组件的地方,可以减少网络传输,进而减少获取数据的总开销。
yarn介绍
Hadoop的核心部分由四个主要模块组成
- hadoop common 共用组件
- HDFS 文件系统,用于数据存储
- hadoop yarn 进行资源管理
- hadoop MapReduce 计算框架
从下图中可以看出hadoop1到hadoop2的转换
Yarn的架构图如下所示。
Yarn是一个two-tier solution,将资源管理(resource managing)和job monitoring分离开,放到不同的实体上进行处理。在Master Node上,专注于Resource方面的管理(目前仅支持cpu, memory),而将job monitoring由application master来负责。
目前关于yarn的中文资料首推董西成的《Hadoop技术内幕:深入解析YARN架构设计与实现原理》。
如何运行storm-yarn
处理逻辑简介
- 由yarn来分配nimbus和supervisor的运行时所需要的资源
- 真正将nimbus和supervisor带起来的是ApplicationMaster
小结
从开始研究storm源码到渐渐开始yarn框架和代码的学习说明当时选择一个小而精的开源入手逐步扩大研究范围的策略还是对的。