Hadoop分布式文件系统
HDFS Hadoop Distributed Filesystem
分布式文件系统:当数据集大到超过一台独立的计算机存储能力时,就需要存储到若干台单独的计算机上,管理网络中跨多台计算机存储的文件系统称为分布式文件系统。
分布式文件系统复杂性:需要考虑节点故障、不丢失任何数据。
HDFS以流式数据访问模式来存储超大文件,运行于商用硬件集群上。
1.超大文件:TB甚至PB级。
2.流式数据访问:一次写入,多次读取是最高效地访问模式。在数据集上长时间进行各类分析,每次分析都涉及到数据集的大部分甚至全部。
3.商用硬件:不需要昂贵且高可靠的硬件,商用硬件,高故障率,但不被用户察觉。
不适合运行在HDFS上:
1.低延迟的数据访问:高数据吞吐量,以高时间延迟为代价。
2.大量的小文件:namenode将文件系统的元数据存储在内存中,所能存储的文件总数受限于namenode的内存总量。
3.多用户写入,任意修改文件:一个writer,写操作总是将数据添加到文件的末尾。
数据块:
HDFS的数据块,默认64MB。
HDFS的快比磁盘的块大,目的是为了最小化寻址开销。如果块设置的足够大,从磁盘传输数据的时间可以明显的大于定位这个块开始位置所需的时间。这样,传输一个由多个块组成的文件的时间取决于磁盘传输速率。
块概念的抽象好处:
1.一个文件的大小可以大于网络中任意一个磁盘的容量。一个文件的所有块不需要存储在同一个磁盘上。
2.使用块而非文件作为存储单元,简化存储管理。
3.块非常适用于数据备份进而提供数据容错能力和可用性。
namenode和datanode
HDFS集群有两类节点,并以管理者-工作者模式运行,即一个namenode(管理者)和多个datanode(工作者)。
namenode管理文件系统的命名空间,维护着文件系统树及整棵树内所有的文件和目录。
datanode是文件系统的工作节点,它们根据需要存储并检索数据块(受客户端或namenode调度),并且定期向namenode发送它们所存储的块的列表。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。