HDFS与其他并行文件系统的比较
2017-07-22 07:34
417 查看
HDFS作为一种新兴的并行文件系统,和现有的分布式文件系统相似,他们都是运行在普通硬件之上的分布式文件系统,然而HDFS与其他分布式文件系统也存在着一些差别。如HDFS具有高容错性,可以部署在低成本的硬件之上,同时放松了对POSIX的需求,使其可以以流的形式访问文件数据,非常适合大数据集的应用程序。分析研究HDFS与其他并行文件系统的相同点和不同点,能够深入了解HDFS系统的应用场景和设计理念。
(1)访问的透明性,用户能通过相同操作来访问本地文件和远程文件。HDFS可以做到这一点,但如果HDFS设置成本地文件系统,而不是分布式,那么HDFS的应用程序可以直接读写本地文件,只需要修改配置文件。可见,HDFS提供的访问透明性是不完全的,毕竟它构建于java之上,不能像NFS和Lustre那样去修改Unix内核,同时将本地文件和远程文件以一致地方式处理。
(2)并发控制,客户端对文件的读写不应该影响其他客户端对同一个文件的读写。要想实现这种单个文件拷贝语义,分布式文件系统需要做出复杂的交互,例如采用时间戳、采用互斥、原子操作等。而HDFS采用的机制非常简单,任何时间都只允许一个客户端进行写操作。当客户端需要写文件时,会对这个文件申请一个租约,只有这个租约被释放,别的客户端才能申请对这个文件的写操作。文件经创建并写入关闭之后不再改变,它的模型是"Write-Once-Read-Many"。
(3)资源移动策略,HDFS支持"移动计算到数据"。若一个Map任务是对某个数据块的操作,则这个操作必定是在存储这个数据块的节点上完成的,同时HDFS支持数据的多副本(默认为3个副本),存储任一副本的节点都可以执行Map任务的操作,JobTracker会把任务分配给距离客户端最近的,且存有副本的节点。
通过上面三方面的比较,可以深入的理解HDFS的优点和缺点,以及HDFS的设计应用场景。对于追求海量数据的高吞吐量、批量处理任务HDFS无疑能发挥巨大的威力,但是对文件的随机读写却并不适合。同时,HDFS也不适合对低延时访问、大量小文件的存储及处理。
(1)访问的透明性,用户能通过相同操作来访问本地文件和远程文件。HDFS可以做到这一点,但如果HDFS设置成本地文件系统,而不是分布式,那么HDFS的应用程序可以直接读写本地文件,只需要修改配置文件。可见,HDFS提供的访问透明性是不完全的,毕竟它构建于java之上,不能像NFS和Lustre那样去修改Unix内核,同时将本地文件和远程文件以一致地方式处理。
(2)并发控制,客户端对文件的读写不应该影响其他客户端对同一个文件的读写。要想实现这种单个文件拷贝语义,分布式文件系统需要做出复杂的交互,例如采用时间戳、采用互斥、原子操作等。而HDFS采用的机制非常简单,任何时间都只允许一个客户端进行写操作。当客户端需要写文件时,会对这个文件申请一个租约,只有这个租约被释放,别的客户端才能申请对这个文件的写操作。文件经创建并写入关闭之后不再改变,它的模型是"Write-Once-Read-Many"。
(3)资源移动策略,HDFS支持"移动计算到数据"。若一个Map任务是对某个数据块的操作,则这个操作必定是在存储这个数据块的节点上完成的,同时HDFS支持数据的多副本(默认为3个副本),存储任一副本的节点都可以执行Map任务的操作,JobTracker会把任务分配给距离客户端最近的,且存有副本的节点。
通过上面三方面的比较,可以深入的理解HDFS的优点和缺点,以及HDFS的设计应用场景。对于追求海量数据的高吞吐量、批量处理任务HDFS无疑能发挥巨大的威力,但是对文件的随机读写却并不适合。同时,HDFS也不适合对低延时访问、大量小文件的存储及处理。
相关文章推荐
- HDFS与其他并行文件系统的比较
- spark 利用hdfs与本地文件系统的时间比较
- HDFS文件系统和OpenStack swift对象存储有何不同
- 扩展hadoop hdfs,实现WebDav协议,将hdfs mount为linux本地文件系统
- 并行文件系统 BeeGFS 现已开源
- springMVC系统配置的 其他配置文件支持
- [原创] hadoop学习笔记:重新格式化HDFS文件系统
- hadoop-3.0.0-beta1运维手册(008):hdfs3.0.0基本操作-查看HDFS文件系统、查看文本文件、使用帮助
- CDH HDFS文件系统垃圾间隔设置
- linux hadoop mount 加载HDFS到本地文件系统
- HDFS文件系统的操作
- 将存储在本地的大量分散的小文件,合并并保存在hdfs文件系统中
- Hadoop实验:按规则读取本地文件写入HDFS文件系统
- 2018-09-07期 Sqoop将关系型数据导入到HDFS文件系统
- HDFS文件系统的基本操作 Hadoop权威指南
- 嵌入式系统文件系统比较 jffs2, yaffs, cramfs, romfs, ramdisk,
- STS或者eclipse连接hadoop上的HDFS文件系统
- HDFS文件系统基本文件命令、编程读写HDFS
- window 系统 linux 系统 hdfs 文件系统 相互转移 hdfs 拷贝文件到linux 本地
- 转一篇比较详细介绍FatFs文件系统移植的文章