hdfs特点
1 流式的访问数据
hdfs是一个部署在廉价硬件上的分布式文件系统,以流的方式访问文件系统中的数据
2 硬件故障
hdfs系统由数百货数千个存储这文件数据片段的服务器组成,每一个部分都有可能出现故障,这就意味着HDFS里的一些组成部分总是失效的,因此故障的检测和自动快速恢复是HDFS一个核心的结果目标
3 简单一致性模型
大部分的HDFS程序对文件的操作需要一次写入,多次读取。文件一旦创建,关闭之后就不需要修改了,MR程序或者网络爬虫程序都是非常完美的适合这个模型
4 主从结构
HDFS是一个主从 结构体系有一个NameNode(两个就是HA)和多个DataNode组成。Namenode用来管理文件系统的命名空间和客户端对文件系统的操作;DataNode存储数据
5 数据的复制
hdfs它是以块的信息存储每一个文件,同一时刻只有一个写操作(注意HDFS中小于一个块大小的文件不会占据整个块的空间,但元数据会占据一个块大小);hdfs尝试满足一个读操作来自它最近的复制
6 安全模式
hadoop集群在启动的时候会进入一个安全模式的状态,安全模式不发生文件块的复制,Namenode接受来自Datanode的心跳和块报告,一个块报告包括Datanode向Namenode节点报告数据块的列表,每一个块都有一个特定的最小复制数,大于这个最小复制数就被认为是安全地复制了。
7 元数据的持久化
FsImage 文件存储着 文件系统的命名空间,文件块的映射和文件系统的配置。EditsLog 事务日志持久化每一个对文件系统的元数据的改变。检查点 当NN启动时,从磁盘中读取FsImage 和EditsLog 文件,然后把新的元数据刷新到本地磁盘中,生产一个新的EditsLog 文件,EditsLog 已经被处理并持久化到FsImage。DN启动时候,它将扫描本地的文件系统,根据本地的文件系统产生一个所有HDFS数据库的列表并报告给NN,这过程块报告
8 通信协议
所以的通行协议都是在TCP/IP协议之上的 . RPC抽象地包装了ClientProtocol和DataNodeProtocol协议,NN不会发起一个RPC,只对DN和客户端发起的RPC做出反馈
9 SecondaryNameNode
周期性地将EditsLog文件中记录对hdfs的操作合并到一个FsImage文件中,然后清空EditsLog。 NN重启就会加载最新的FsImage(减少了NN的启动时间)