Hadoop分布式文件系统HDFS和OpenStack对象存储系统Swift有何不同?
1. HDFS使用集中式单一节点架构(NameNode)来维护文件系统元数据,而在Swift中,元数据分布在整个集群中并拥有多个副本。注意:集中式元数据存储使HDFS存在性能、单点故障和扩展性问题,因此规模越大就性能越低,就越容易不可用,就越难扩展甚至不能扩展,所幸的是HDFS2使用NameNode HA和HDFS Federation解决了这三个问题。
2. Swift在设计时考虑到了多租户架构,而HDFS没有多租户架构这个概念。
3. HDFS针对大文件作了优化(HDFS关注吞吐量,常用于批量数据处理),而Swift被设计成可以存储任意大小的文件。
4. 在HDFS中,文件只能写入一次(部分版本可以使用Append操作在文件的末尾添加数据,但不支持在文件的任意位置进行修改),而在Swift中,文件可以写入多次。
5. HDFS用Java来编写,而Swift用Python来编写。