如何为Hadoop集群选择合适的硬件?
比特网 发表于:12年11月12日 09:00 [转载] 比特网
我们的客户开始使用Hadoop时的第一个问题是如何为他们的Hadoop集群选择合适的硬件。这个博客介绍Hadoop管理员需要考虑的各种因素。我们也鼓励其他人根据他们的经验决定Hadoop集群配置。虽然Hadoop设计在工业标准硬件上运行,建议一个理想的集群配置不只是提供硬件规格列表那么容易。为一个给定的工作负载选择硬件来实现性能和经济的最佳平衡,需要测试和验证。例如,IO密集型工作负载的用户将投资更多中等性能CPU。在这个博客,我们将讨论工作负载评价和它在硬件选择中至关重要的作用。
存储和计算的融合
在过去十年中,IT组织有标准化的刀片服务器和SAN(存储区域网络),以满足他们的网格和计算密集型工作负载。虽然这种模式对一些标准的应用,如Web 服务器,应用服务器,规模较小的结构化数据库和简单的ETL(提取,转换,装载)有很大的意义,基础设施的需求已经发生变化,数据量和用户数已经大幅增长。Web服务器现在前端使用缓存层,数据库大规模并行使用本地磁盘,ETL作业正在推动比他们可以在本地处理能力更多的数据。硬件厂商建立创新体系,以满足这些要求,包括存储刀片,SAS(串行连接SCSI)交换,外部SATA阵列和更大容量的机架单元。
Hadoop的目的是基于一种新的方法来存储和处理复杂的数据。传统方式依靠SAN满足海量存储和可靠性,然后通过刀片集合进行处理,取而代之,Hadoop在软件层面处理大数据量和可靠性。 Hadoop把数据均衡分布到集群上,通过复制副本以确保数据的可靠性和容错。因为数据和处理能力是分布在服务器上,处理指令可以直接发送到存储数据的服务器。由于在Hadoop集群的每个服务器上存储和处理数据,他们需要进行配置,以满足数据存储和处理要求。
工作负载压力问题
在几乎所有情况下,MapReduce作业会遇到瓶颈,或者是从磁盘或从网络(作为IO密集工作)读取数据,或者是计算数据(CPU密集任务)。IO密集工作的一个例子是排序,这就需要非常小的计算(简单的比较)和大量的读取和写入磁盘。CPU密集型的工作的一个例子是分类,其中一些输入数据需要非常复杂的方式计算来确定一个实体。
