基于英特尔平台的Hadoop私有云架构
提到云计算,我们通常能够与Google、微软、雅虎这样的业界大腕相联系,与中小企业无缘。而实际上,得益于诸如Hadoop这样的开源软件,广大中小企业也可以搭建自己的私有云,并相当程度的满足自身需求。这篇文章会从实践出发,谈一谈企业如何在基于英特尔的开放架构上架设Hadoop私有云系统,以及测试实施的效果到底如何。
目前系统面临的问题
从过去来看,企业系统当中存在相当数量的应用,各自承载不同类型的大计算量任务,比如分词、产品分析、新词发现等等。
而目前的系统由于是基于单机的实现的,尽管单服务器性能也足够强,但对于多任务的执行,效率实在相当低下,某物流公司仅当月的产品分析一项就花了近300个机时。
如果沿着现在的方式走下去的话,那么开发成本,维护成本,硬件投入,以及跨项目组的沟通协调成本都会持续提升;而硬件使用效率跟开发人员生产率却会下降。从这点出发,需要构造一个通用的分布式计算框架引擎作为新的基础计算架构,来满足任务需求。
系统需求
1、通用性——系统需要实现任务分发,负载平衡,错误恢复等分布式计算的基础工作,一个计算密集型的任务可以通过简易的封装,部署在系统执行,在同一时间内,系统可以执行不同类型的任务,由此达到对服务器资源的最有效利用,从这一点上来看,系统需要的是一个开放式的基础架构。
2、稳定性——系统本身的运行稳定;
3、可扩展性——主要是指Scale Out的能力,需要新的服务器资源可以简易的集成进集群,投入应用;
4、灵活性,除去通过API或者通过扩展框架来将任务部署在系统中外,也要支持利用Python等脚本语言进行轻量级的开发,来应对一些ad-hoc的任务;
5、支持对大规模数据量的处理,以及对最终结果的集中收集。
英特尔平台的Hadoop私有云解决方案
从开放行、稳定性和扩展性等多方面角度考虑,基于Intel至强处理器平台是新的系统架构的选择,整个系统建立在Intel至强5600架构平台之上,在开源的分布式计算框架Hadoop上定制开发。Hadoop是一套对Google著名MapReduce模式的实现,用最简单的话说,MapReduce就是把任务数据拆分成多块,分别在不同的服务器上进行处理,最后再把中间结果聚合起来,得到最终结果。
从应用加载来看,所有的服务器资源根据应用被划分,运行稳定可靠,如果中间因为网络或者小部分服务器本身故障,Hadoop的内部机制可以自动将任务分配到正常机器上运行,以保证所有任务最终的顺利完成。
另外,由于所有的计算任务会在单独的线程中进行,所以可以充分利用至强5600的多线程和超线程技术。此外,配合英特尔QPI总线设计,处理器间的连接带宽提升至25.6GB/s,CPU与内存的数据带宽也达到了32GB/s,经在四核的服务器上测试,由于应用本身没有对多核进行优化,因此在主程序执行时,即便是单机性能也提高了近50%。
总结
基于Hadoop的开放平台私有云架构的战略意义
1、大幅减少现有计算密集型任务的时间,大幅提高服务器利用效率;
2、使未来对计算要求更高的业务成为可能,这样的架构允许任意添加新的X86服务器就能扩充计算资源,而不会增加额外的管理和维护成本。
3. 最后,系统除了支持Java,也支持Python和Bash Shell这样轻量级的脚本语言,也使得开发人员能够利用廉价而高性能的计算平台进行业务创新。