云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

网站建设_方正服务器_限量秒杀

小七 141 0

选择S3而不是HDFS的五大理由

在Databricks,我们的工程师指导成千上万的组织定义他们的大数据和云策略。在将大数据工作负载迁移到云端时,最常见的问题之一是如何评估HDFS与云提供商提供的存储系统(如Amazon的S3、微软的azureblob存储和Google的云存储)的对比。在这篇博文中,我们将分享我们对为什么云存储是数据存储的最佳选择的想法。在本次讨论中,我们以amazons3为例,但是结论可以推广到其他云平台。我们沿着以下维度比较S3和HDF:成本弹性SLA(可用性和耐久性)每美元绩效事务写入和数据完整性成本让我们考虑一下存储的总成本,它是存储成本和人力成本(维护它们)的组合。首先,让我们估计每月存储1TB数据的成本。截至2017年5月,S3前1TB数据的标准存储价格为每月23美元。请注意,根据您的使用模式,S3列表和文件传输可能需要花钱。另一方面,使用不频繁访问存储的冷数据成本只有一半,每月12.5美元。为了便于讨论,我们用每月23美元来估算成本。S3没有计算能力,但它确实让您可以自由地利用短暂的集群,并选择最适合工作负载的实例类型(例如,计算密集型),而不仅仅是从存储的角度来看,什么是最好的。对于HDFS,EC2上最经济高效的存储实例是d2系列。在实际情况下,我们不可能实现以下假设:一个水晶球进入未来,提前三年完美预测存储需求,因此我们可以使用3年保留实例的最大折扣。工作负载稳定,峰谷比为1.0。这意味着我们的存储系统根本不需要有弹性。存储利用率为70%,标准HDFS复制系数设置为3。根据上述假设,使用d2.8xl实例类型(5.52美元/小时,71%折扣,48TB硬盘),1TB数据的成本为5.52 x 0.29 x 24 x 30/48 x 3/0.7=103美元/月。(请注意,使用保留实例,可以在d2系列上实现更低的价格。)因此,单就存储成本而言,S3比HDFS便宜5倍。根据我们管理PB级数据的经验,S3的人力成本几乎为零,而维护HDFS通常需要Hadoop工程师或供应商支持团队。一旦我们考虑到人力成本,S3比EC2上具有同等容量的HDFS集群便宜10倍。弹性容量规划很难做到正确,而且很少有组织能够预先准确估计其资源需求。在内部部署的世界中,这要么导致在事后配置更多资源时的巨大痛苦,要么由于前期过度调配而导致的低利用率造成巨大浪费。S3或一般的云存储的一个好处是它的弹性和现收现付的定价模式:你只需要对你输入的内容收费,如果你需要输入更多的数据,就把它们扔到那里。在幕后,云提供商自动按需提供资源。简单地说,S3是有弹性的,HDFS不是。SLA(可用性和耐久性)根据我们的经验,S3的可用性非常好。在过去的六年中,我们只经历过两次S3宕机,而且从未经历过S3造成的数据丢失。亚马逊声称99.99999999%的耐用性和99.99%的可用性。请注意,这比绝大多数组织的内部服务都要高。亚马逊的官方SLA可以在这里找到:服务级别协议-Amazon简单存储服务(S3)。相比之下,对于hdf来说,很难估计可用性和耐久性。理论上可以根据EC2的平均无故障时间(MTTF)以及升级和维护停机时间来计算这两个SLA属性。实际上,这些很难量化。我们与客户合作的理解是,大多数Hadoop集群的可用性低于99.9%,即每年至少有9小时的停机时间。由于跨AZ复制可以跨不同的数据中心自动复制,S3的可用性和耐用性远远优于HDFS。每美元绩效S3的主要问题是消费者不再具有数据位置,所有的读取都需要通过网络传输数据,而S3性能调整本身就是一个黑匣子。当使用HDFS并获得完美的数据局部性时,在某些实例类型(例如i2.8xl,大约每个内核90MB/s)上可以获得~3GB/节点的本地读吞吐量。DBIO是我们的云I/O优化模块,它为S3提供了优化的连接器,可以在i2.8xl上维持约600MB/s的读吞吐量(每个内核大约20MB/s)。也就是说,在每个节点的基础上,HDFS的读吞吐量比S3高6倍。因此,考虑到S3比HDFS便宜10倍,我们发现S3在性能上比HDFS高出近2倍。然而,S3的一大好处是我们可以将存储与计算分开,因此,我们只需在较短的时间内启动一个较大的集群,以提高吞吐量,达到允许的物理限制。这种计算和存储的分离还允许不同的Spark应用程序(例如数据工程ETL作业和一个特别的数据科学模型培训集群)在自己的集群上运行,从而防止并发问题影响多用户固定大小的Hadoop集群。这种分离(以及对不同工作负载的灵活适应)不仅降低了成本,而且改善了用户体验。与S3相比,HDFS的一个优势是元数据性能:相对于hdfsnamenode列出数千个文件相对较快,但对于S3来说可能需要很长时间。然而,我们在apachespark2.1中实现的可伸缩分区处理特性通过S3中的元数据性能缓解了这个问题。请继续关注不久的将来发布的消息,它完全消除了DBIO的这个问题。事务写入和数据完整性大多数大数据系统(例如Spark、Hive)都依赖HDFS的原子重命名功能来支持原子写入:也就是说,一个作业的输出是由读者以"全有或全无"的方式观察的。这对于数据完整性很重要,因为当作业失败时,不应写出部分数据来损坏数据集。S3缺乏原子目录重命名,这是保证数据完整性的关键问题。这导致了复杂的应用程序逻辑来保证数据的完整性,例如,永远不会附加到现有的数据分区。今天,我们很高兴地宣布在我们的DBIO工件中支持事务性写入,该工件具有到S3(以及未来其他云存储系统)的高性能连接器,并支持数据完整性的事务写入。更多信息请参阅此博客文章。其他运营问题到目前为止,我们已经讨论了耐用性、性能和成本方面的考虑,但是在其他几个领域,像S3这样的系统比HDFS具有更低的操作成本和更大的易用性:加密、访问控制和审计:S3支持多种类型的加密,同时使用AWS和客户管理的密钥,并且具有易于配置的审核日志记录和访问控制功能。这些功能使您能够轻松满足法规遵从性需求,如PCI或HIPAA法规遵从性。备份和灾难恢复:S3的opt-in版本控制功能可以自动维护修改或删除的文件的备份,从而可以轻松地从意外数据删除中恢复。跨区域复制可以用来增强S3已经很强的可用性保证,以抵御AWS区域的完全中断。数据生命周期管理:S3可以配置为在一个可配置的时间段后自动将对象迁移到冷存储。在许多组织中,当数据是新的时会频繁地读取,并且随着时间的推移,读取的频率明显降低。S3的生命周期管理策略可以自动将旧对象迁移到不经常访问的存储中以节省成本,或迁移到Glacier以实现更大的成本节约;后者对于法规遵从性要求长期存储数据的组织非常有用。要支持HDFS上的这些附加要求,系统管理员需要做更多的工作,并进一步增加操作成本和复杂性。结论在这篇博文中,我们以S3为例比较了云存储和HDFS:S3高密度光纤S3与HDFS弹性是的不S3更有弹性成本/TB/月23美元206美元10倍可利用性99.99%99.9%(估计)10倍耐久性99.999999999%99.9999%(估计)10倍+事务性写入是的,DBIO是的可比性总而言之,S3和云存储提供了弹性,可用性和耐用性提高了一个数量级,性能提高了2倍,成本比传统的HDFS数据存储集群低10倍。Hadoop和HDFS通过降低存储和分发大量数据的成本,使大数据存储商品化。然而,在云本地体系结构中,HDFS的好处微乎其微,不值得操作的复杂性。这就是为什么许多组织不在云中操作HDFS,而是使用S3作为存储后端。有了Databricks的DBIO,我们的客户可以坐下来享受云存储性能连接器的优点,而不会牺牲数据的完整性。免费试用Databricks。今天就开始吧