我们将购买一些新硬件仅用于Hadoop集群,我们仍然坚持应该购买的东西.假设我们的预算为5万美元我们应该以每台2500美元的价格购买两台超级漂亮的机器,四台每台售价1200美元左右,还是八台每台600美元左右?使用速度更慢的机器或速度更快的机器,hadoop能否更好地工作?或者,像大多数事情一样"取决于"?:-)
你通常会更好地使用Hadoop获得一些不那么强大的额外机器.您几乎从未看到具有超过16GB RAM和双四核CPU的数据节点,并且通常它们比这小.
你总是必须运行一个作为namenode(master),并且通常你也不会在同一个盒子上运行datanode(worker/slave),尽管你的群集很小.但是假设你没有,那么获得2台机器将只剩下1个工作节点,这在某种程度上违背了目的.(不完全是因为您仍然可以在奴隶上并行运行4-8个作业,但仍然.)
同时,您不希望拥有1000个486的群集.如果你的预算是5千美元,我会取得余额,并购买4台1200美元的机器.这些将在个人表现方面提供合适的基线,您将有3个数据节点来分配工作,如果您需要,您将有空间扩展您的集群.
要记住的事项:您需要为每个datanode运行多个映射或减少任务,这意味着多个JVM同时运行.我会尝试至少获得4GB,最好是8GB内存.由于大多数MR作业都是IO绑定的,因此CPU不太重要.您可能会以1200美元的价格购买这样的机器,这就是我的投票.
简而言之,您希望最大化处理器核心和磁盘的数量.您可以牺牲可靠性和质量,但不要购买最便宜的硬件,因为您会遇到太多的可靠性问题.
我们选择戴尔2xCPU 4核dell服务器,每盒8个核心.每盒16GB的内存,每个内核2GB,有点低,因为你的任务和磁盘缓冲都需要内存.5x500GB的硬盘,我希望我们可以选择TB或更高的硬盘.
对于驱动器,我的意见是购买更便宜,更慢,不可靠,高容量的驱动器,而不是更昂贵,更快,更小,更可靠的驱动器.如果您遇到磁盘吞吐量问题,更多内存将有助于缓冲.
这可能比您正在考虑的配置更加强大,但是最大化核心和驱动器而不是购买更多的盒子通常是一个不错的选择 - 更少的电力成本,更易于管理,以及更快的某些操作.
更多的驱动器意味着每个核心更多的同步磁盘吞吐量,因此拥有与核心一样多的驱动器是一件好事.基准测试似乎表明RAID配置比JBOD配置慢(只需安装驱动器并在其上安装Hadoop),JBOD也更可靠.
持续!一定要获得ECC内存.Hadoop通过内存推送数TB的数据,一些用户发现非ECC内存配置偶尔会在TB级数据集中引入单比特错误.调试这些错误是一场噩梦.