您对 Hadoop 的磁盘有何建议?
您建议使用 SAS,还是直接通过 SATA 连接磁盘?或者其他什么?每个选项的优缺点是什么?
(磁盘大小已确定,每台服务器大概有5-6个2TB的磁盘)
答案1
现代 Hadoop 安装通常每个盒子使用几个消费级 SATA 驱动器。
每个节点究竟有多少个磁盘,很大程度上取决于你的应用程序是什么。例如,在雅虎,它们大多受磁盘大小限制,因此每个节点有很多磁盘是有意义的。我见过隐形技术,它可以饱和大量驱动器通道,因此在那里使用多个背板和大量磁盘是有意义的。
如果您刚刚开始,我建议您使用 6 x 2TB SATA 或 12 x 2TB SATA。有一些不错的 Supermicro 机箱,它们可以在一个 2U 机箱中为您提供四个节点,前面有 12 个驱动器,这很不错,也很紧凑,但每个节点只有 2 x 2TB 驱动器可能会有点受限。同样的 2U 外形尺寸也可以承载 1 或 2 个节点,面板上也有同样的 12 个驱动器。由于机箱本身要花钱,所以这可能会有所不同。
另一个考虑因素是,许多数据中心受到每平方英尺功率的限制。在 Hadoop 集群中,功耗分为两部分,一部分用于 CPU/内存,另一部分用于保持驱动器旋转。由于这些限制可能会阻止您用超紧凑的 4 x 节点盒填充机架,因此您可能宁愿继续使用单节点盒,以便以后可以根据需要添加驱动器。
如果不受磁盘空间限制,则应考虑总网络带宽。每个驱动器拥有更多 NIC 是件好事,因此四盒式设备很不错。
同样,您的内存需求是多少?双四核机器的 24GB RAM 目前相当标准,但您可能需要更多,或者可以用更少。在相同数量的驱动器上拥有更大的总内存量可能对您的应用程序有利。
答案2
嗯,既然您使用 Hadoop,那么冗余就在应用程序中,因此您无需考虑每个节点的存储冗余。当然,这应该通过良好的例程来备份,以便在发生存储故障时让节点重新上线。
我认为 RAID0 中的 2xSATA 磁盘应该可以做到这一点。但我真的不知道您是否会通过 Hadoop 获得任何性能方面的提升,它可能只会增加复杂性。
答案3
在这种情况下,我唯一担心的性能相关问题是 SAS 磁盘在高负载情况下通常表现更好 - 但只有您知道预期的负载。
我想说的是,无论你选择哪种方式,你都应该选择企业级磁盘,Hadoop 在 24 小时内可能会非常密集,你需要一个专为 24/365 运行而设计的磁盘,而许多较便宜的磁盘根本无法可靠地做到这一点。
WD的WD2003FYYS备受好评。
答案4
设计时考虑到故障,Hadoop 会给人留下深刻印象。我使用非企业驱动器运行所有集群,在 24/7 的运营中从未出现过故障。节省的成本远远超过了任何潜在故障,此外,大多数磁盘都提供 5 年保修,因此您只需将它们寄去 RMAd 即可继续使用。
根据我的经验,我通常会在驱动器损坏之前对其进行升级,但情况可能有所不同。
所有数据节点都应以 ext2 形式运行,不要运行日志记录,也不要使用任何 RAID...Hadoop 是您的 raid,您可以根据自己的方式设置复制级别。