在前两篇文章中,我们介绍了Hadoop集群部署的3个方式,即《存储/计算绑定和单一计算的Hadoop集群》,《存储/计算分离的Hadoop集群部署》。本文我们着重讲解最后一种方式,即构建自定义的Hadoop集群,作为对用户更为开放的一个部署选项。
自定制集群(Customcluster)
在复杂的业务背景下,往往某一种特定模型无法满足需求。比如,公司三个部门A、B、C,分别需要自建Hadoop集群,但是他们需要消费相同的数据。三个部门对Hadoop集群的资源要求(CPU、内存、存储)存在不同需求,且大多数情况下他们对Hadoop使用不在同一时间:A部门主要于凌晨至早六点,运行每日例行任务;B部门需要在下午四点至夜间十点左右运行查询处理任务,对实时性要求相对比较高;C部门需要在大部分的白天时段运行一些研究、开发和测试的任务。如何有效利用硬件服务器资源成为该公司IT部门重点考虑的问题。
如下图所示,如果不采用虚拟化技术进行整合,资金投入(CAPEX)意味着每个集群最大负载时硬件投资总和。但是通过整合,可以将三个集群共享资源池,CAPEX意味着通盘最大负载。而且目前虚拟化可以带来2:1到4:1的整合比,极大的减少了资本投入。
根据三个部门的需求,我们搭建统一的一套HDFS存储集群,分别为三个计算集群提供存储服务。这样避免了搭建三个存储集群所引发的跨网络的大量数据迁移和拷贝工作,让需要维护的存储集群从三个减少到一个,从而减少操作成本OPEX,也节省了原来需要采买大量存储器的资本投入CAPEX。另外,由于B部门对时间延迟要求高,我们将其搭建成具有虚拟化节点感知的满足数据本地性要求的计算集群(具体方法请参见本博客“包含节点网络拓扑和主机排布策略的存储/计算分离模型”)。另外A、C部门的集群搭建成单一计算节点集群,并指向上述统一的HDFS集群。这样搭建,就保证了不同计算集群之间的资源隔离、故障隔离、配置隔离和安全隔离。
当然您也可以根据您的具体业务需求,将Hadoop集群和其他应用一并整合。