爱游戏体育官网首页爱游戏app体育官方从本质上讲,Sprout Social是一家数据驱动型公司。爱游戏体育官网首页Sprout每天处理来自多个社交网络的数十亿条消息。正因为如此,Sprout工程师面临爱游戏体育官网首页着一个独特的挑战——如何存储和更新同一消息的多个版本(即转发、评论等),这些信息以非常高的容量进入我们的平台。

由于我们存储了多个版本的信息,Sprout工程师的任务是每天数次“重新创造世界”——这是一个爱游戏体育官网首页必要的过程,需要遍遍整个数据集,将社交信息的每个部分整合成一个“真相来源”。

例如,跟踪一条推特帖子的点赞、评论和转发。过去,我们一直依赖于自我管理的Hadoop集群来维护和处理如此大量的数据。每个Hadoop集群将负责Sprout平台的不同部分——这一实践依赖于整个Sprout工程团队来管理大规模的大数据项目。爱游戏体育官网首页

Sprout大数爱游戏体育官网首页据方法的关键

我们的Hadoop生态系统依赖于Apache Hbase,这是一个可扩展的分布式NoSQL数据库。使Hbase对我们处理大数据的方法至关重要的是,它不仅能够对整个数据集进行快速范围扫描,而且还能够进行快速、随机、单记录查找。

Hbase还允许我们批量加载数据和更新随机数据,这样我们就可以更容易地处理无序或部分更新的消息,以及社交媒体数据带来的其他挑战。爱游戏官网皇然而,自我管理的Hadoop集群给我们的基础设施工程师带来了高昂的运营成本,包括手动管理灾难恢复、集群扩展和节点管理。

为了帮助减少管理这些拥有数百tb数据的系统所需的时间,Sprout的基础设施和开发团队一起寻找了一个比运行自管理Hadoop集群更好的解决方案。爱游戏体育官网首页我们的目标是:

  • 允许Spro爱游戏体育官网首页ut工程师更好地构建、管理和操作大型数据集
  • 最大限度地减少工程师手工拥有和维护系统的时间投入
  • 减少由于集群扩展而导致的过度配置的不必要成本
  • 提供更好的灾难恢复方法和可靠性

当我们评估当前大数据系统的替代方案时,我们努力找到一个易于与当前处理和模式集成的解决方案,并减轻手动管理集群带来的操作负担。

评估新的数据模式替代方案

我们团队考虑的解决方案爱游戏体育入口登录之一是数据仓库。数据仓库作为数据分析和聚合的集中存储,但与Hbase相比,它更像传统的关系数据库。他们的数据是结构化的,经过过滤的,并具有严格的数据模型(即对单个对象使用单行)。

对于存储和处理同时存在多个版本的社交消息的用例,数据仓库的模型不能满足我们的需求。我们无法将现有的模型有效地适应数据仓库,并且性能比我们预期的要慢得多。重新格式化我们的数据以适应数据仓库模型将需要大量的开销来在我们的时间轴上重新工作。

我们研究的另一个解决方案是数据湖屋。数据湖屋扩展了数据仓库的概念,允许较少结构化的数据、更便宜的存储和围绕敏感数据的额外安全层。虽然数据湖屋提供了比数据仓库更多的东西,但它们没有我们当前的Hbase解决方案那么高效。通过测试合并记录和插入和删除处理模式,我们无法为批处理作业生成可接受的写入延迟。

降低AWS EMR的开销和维护

在了解了数据仓库和lakehouse解决方案之后,我们开始研究运行托管Hbase的替代工具。爱游戏体育入口登录虽然我们认为目前使用Hbase对我们在Sprout的工作是有效的,但我们问自己:“如何更好地运行Hbase,在保持主要使用模式的同时降低操作负担?”爱游戏体育官网首页

这时我们开始评估Amazon为Hbase提供的Elastic Map Reduce (EMR)管理服务。评估EMR需要以与测试数据仓库和湖屋相同的方式评估其性能,例如测试数据摄取以查看它是否能满足我们的性能需求。我们还必须测试数据存储、高可用性和灾难恢复,以确保EMR从基础设施/管理角度满足我们的需求。

EMR的特性改进了我们当前的自我管理解决方案,使我们能够重用当前的模式来读取、写入和运行作业,就像我们在Hbase中所做的那样。EMR最大的好处之一是使用EMR文件系统(EMRFS),它将数据存储在S3中,而不是节点本身。

我们发现的一个挑战是EMR具有有限的高可用性选项,这限制了我们在单个可用性区域中运行多个主节点,或者在多个可用性区域中运行一个主节点。利用EMRFS可以降低这种风险,因为它为灾难恢复提供了额外的容错能力,并将数据存储与计算功能解耦。通过使用EMR作为我们的Hbase解决方案,我们能够提高我们的可伸缩性和故障恢复,并最大限度地减少维护集群所需的人工干预。最终,我们认为EMR最适合我们的需求。

迁移过程可以很容易地进行预先测试,并在不停机的情况下将数十亿条记录迁移到新的EMR集群。新集群的性能得到了提高,成本降低了近40%。要阅读更多关于迁移到EMR如何帮助降低基础设施成本和提高我们的性能的信息,请查看爱游戏体育官网首页爱游戏app体育官方Sprout Social与AWS的案例研究。

我们学到了什么

这个项目的规模和范围使我们基础设施数据库可靠性工程团队有机会与多个工程团队进行跨功能的工作。虽然这很有挑战性,但它被证明是一个令人难以置信的大型项目的例子,我们可以在Sprout作为一个协作工程组织来处理。爱游戏体育官网首页通过这个项目,我们的基础设施团队更深入地了解了Sprout的数据是如何使用、存储和处理的,我们也更有能力帮助解决未来的问题。爱游戏体育官网首页我们已经在多个团队之间创建了一个公共知识库,它可以帮助我们构建下一代客户特性。

如果你对我们正在建造的东西感兴趣,加入我们的团队并申请我们今天的一个公开工程师职位。