分布式文件系统比普通文件系统更为复杂,例如,使文件系统能够容忍节点故障且不丢失任何数据,就是一个很大的挑战。
1.Hadoop的设计
超大文件 指的是几百m,几百GB,甚至几百TB的文件
流式数据访问 一次写入,多次读取是最高效的访问模式。
2.概念
数据块 相对于文件系统,HDFS也有数据块的概念(Block),但是大的多,默认为64M,目的是为了最小化寻址开销。
对hdfs进行块的抽象好处如下
首先,一个文件的大小可以大于网络中任意一个磁盘的容量。
其次,简化了存储子系统的设计。
不仅仅如此,块非常适用于数据备份而提供数据容错能力和可用性。将每个块复制到少数几个独立的机器(默认为3个),可以确保在发生块,磁盘或者机器故障后数据不丢失。如果发现一个块不可用,系统会从其他地方读取一个副本,对用户来说,是透明的。(tranparent)
与磁盘文件系统相似,HDFS中fsck指令可以显示块信息。比如,执行以下命令可以列出文件系统中各个文件由哪些块构成:
-
%hadoop fsck/ -files -block
Namenode,datanode : HDFS集群有两种节点,以管理者工作者模式运行,也就是一个namenode,多个datanode。Namenode管理文件系统的命名空间,维护着文件系统所有的文件和目录
阅读(4255) | 评论(0) | 转发(1) |