虽然 Apache Hadoop 以前都是使用 HDFS 的,但是当 Hadoop 的文件系统的需求产生时候也能使用 S3。之前的工作经历中的大数据集群存储都是用HDFS,当前工作接触到对象存储S3,在实践中比较两者的不同之处。
1)可扩展性
-
HDFS 依赖本地的存储只能横向扩展,增加一个存储区域就意味着不仅要加一个更大的硬盘驱动器来扩充节点,并且还要在集群上面加更多的机器。这是可行的,但是相比 S3 花费更多并且更加复杂。
-
S3 能根据存储的数据自动地扩展,根本不需要改变任何东西。甚至可用的空间是几乎无限的(至少对 Amazon 没有限制)。
-
对比:S3 表现更加优异
2)数据的高可用性
-
对HDFS数据持久性的统计模型表明,在一个很大的 4000 个节点的集群(16 PB 的总存储 250,736,598 个 block 副本)上面,丢失一个block的数据(默认是 64MB)的概率是 24 小时内 5.7 x 10 - 7,365 天内是 2.1 x 10 - 4。然而,对于仅仅只含有几十个实例的大多数集群来说,丢失数据的概率要高得多。
-
S3 为每个对象提供 99.999999999% 的年持久性,意味着每 10,000,000 年每10,000 个对象中只有一个会丢失。(详情见 S3 FAQ),它甚至可以更好。此外大数据集群中的 HDFS 依赖机器,恢复数据者备份数据都强依赖集群机器。S3 存储不依赖集群机器&