当我们部署了2006年的第一个生产Hadoop集群时,我们希望在雅虎建立一个更高效和经济高效的网络搜索索引。雅虎的其他群体在雅虎开始使用Hadoop进行研究工作和收入驾驶应用程序,例如单击预测的赞助搜索。从那时起,Hadoop已经发展成为世界上许多最大公司的重要工具,包括Facebook,GE,VISA和沃尔玛。

但随着收养成长,公司越来越依赖Hadoop,一些缺点已经限制了其潜在的商业价值。正如我们所建造的Pepperdata,我们与许多最大的用户合作了解他们如何使用他们的集群以及所需的改进。我们发现三点痛点导致最有麻烦:

1.混合工作负载和多租赁环境导致工作争取资源。

虽然Hadoop调度程序多年来有所改善,但它们仍然基于作业开始时预先分配资源。问题是作业在终生过程中使用不同的硬件资源混合。此外,某些硬件资源(例如磁盘I / O和网络)不受标准Hadoop的限制。这些因素都导致理想地应在运行时仲裁的资源竞争,导致工作不及时完成。

2.故障排除很困难,可能需要数小时。

虽然有许多工具允许用户监控其集群,但管理员通常留下了影响集群健康的因素的不完整视图。我们已经看到,缺乏粒度工具使得难以隔离问题的根本原因,并推动大量低效的行为,例如猜测和检查重启和向用户询问他们提交的作业。随着集群大小的生长和企业越来越依赖Hadoop,这种方法将成为(并且许多已经成为)不可持续。

3.购买比需要更多的硬件。

为了弥补他们对集群资源的控制缺乏控制,组织通常根据预期的峰值负载划分其集群。目标是确保作业不会过载集群并导致大规模降级的性能,作业失败或更糟。然而,由于Hadoop的低效,正面的资源分配,这种策略价格昂贵,并且大部分时间都留下了未使用的容量 - 并且仍然可以防止不期望的结果,因为工作负载通常是不可预测的。

解决方法与解决方案

在我们的研究中,我们发现许多大规模生产集群管理员实施了自己的解决方法。我们建议遇到痛苦的管理员考虑以下内容,记住这些是减轻的,而不是批发解决方案:

同样,这些建议是Hadoop的限制而不是解决方案的解决方法,并且大多数都有自己的权衡。因此,您应该意识到业务关键型应用程序可能需要更多的关注,而不是仅设置出框外的Hadoop。

Hadoop的演变

采用纱线正在增加Hadoop集群的灵活性和效率,并将整个新的用户带到平台上。虽然我们(以及其余的行业)对纱线的广泛采用感到兴奋,但它仍然存在Hadoop 1的一些基本问题,如上前沿分配资源和不完美的可见性,因此代表着进化,不是魔法子弹。

Hadoop是一个梦幻般的平台,并且没有惊讶的是,它已被广泛采用。在过去的八年里,我们在灵活性,可扩展性和可靠性方面存在巨大的增长。与此同时,我们在雅虎的早期面对的一些基本挑战,例如在多租户集群中的不可预测性,继续成为一个问题。然而,随着Hadoop继续发展,我们不仅会克服这些挑战,而且释放其真正的商业价值。

Pepperdata的肖恩斯特,创始人和首席执行官。