我猜想 100Mbit/s 的网络接口将成为 HDFS 的瓶颈,并减慢 HBase 的速度(最大压缩速度约为 10MB/s 等)。这种部署有意义吗?
我在想“现在”当 SSD 进入游戏时,即使 1Gbit/s 的网络接口仍然可能是瓶颈,所以也许永远不应该考虑构建一个 100Mbit/s 的集群(即使对于 HDD)?
简而言之:
您永远不应该在 HDFS 中使用 SSD,这些闪存的写入次数有限。HDFS 有很多写入,这主要是因为复制。如果您将 HBase 用作 NoSQL DB,这将导致更多的写入。
正如您所说的那样,瓶颈是硬盘和网络。网络是一个更高的瓶颈,因为您正在分发数据,因此必须复制它,如果您正在运行作业,如果数据在本地不可用,则可以复制它们(Reducer 必须复制很多东西)。
因此,您绝对应该使用比 10Mbit 或 100Mbit 更好的网络。这意味着您的交换机和节点上的 NIC。
硬盘袭击不会导致更高的写入带宽,有几个基准可以证明这一点。看看 HDFS Wiki,它必须在那里进行描述。
100MB 网络对于 hadoop 集群来说不太可能是一个好的设置,您可以从 Hadoop World 中查看 cisco 的演示文稿,以分析网络使用情况。也就是说,根据您的实际负载和集群大小,它可能是可行的——尽管如果是这种情况,您可能想确保您确实需要 Hadoop。
关于 SSD,它们每 MB 的成本更高,并且根据您的写入负载,您可能必须比 HDD 更快地更换它们,但它们会为您节省电力——我想在大型集群中使用它们并不划算(我不知道谁做过)您可以将 SSD 用于某些磁盘,例如用于集群上的临时空间(例如 map/reduce 中间结果)以获得 IO 优势
您的网络是否会成为瓶颈取决于您正在运行的作业类型。如果您进行文本处理(例如运行 Stanford NER 或 coreference 套件),那么 100Mbit/s 网络将是您最不关心的问题。但是,如果您正在执行大量 I/O 密集型处理(大多数作业具有较大的 reduce 步骤),那么它将是。与往常一样,这取决于您的工作量。但是,我认为可以肯定地说,鉴于最近的处理器和具有多个磁盘的节点,100Mb 网络最有可能是造成瓶颈的罪魁祸首。