1.1 定义
hdfs是一个文件系统,用于存储文件,通过目录树来定位文件;其次,hdfs是分布式的,由很多台服务器联合起来实现功能。
1.2 优缺点
优点:
1)高容错性:数据自动保存多个副本;某一个副本丢失后,它可以自动恢复;
2)适合处理大数据:GB、TB级别的数据;
3)可构建在廉价机器上,通过多副本机制,提高可靠性。
缺点:
1)不适合低延时数据访问,比如毫秒级别的存储数据,是无法做到的;
2)无法高效的对大量小文件进行存储:一般会采取合并成har文件等方式;
3)不支持并发写入、文件随机修改:多个线程同时对一个文件写入,这是不允许的。
1.3 HDFS的组成架构
1)NameNode:管理hdfs的namespace;配置副本策略;管理block的映射信息;处理客户端的读写请求。
2)DataNode:存储实际的数据块;执行实际的数据块读写操作。
3)Client:文件切分;与namenode和datanode交互;拥有格式化namenode和一些hdfs增删改查的命令。
4)SecondaryNameNode:并非namenode的热备,namenode挂掉的时候,并不会马上替换;辅助namenode,定期合并Fsimage和Edits,并推送给namenode。
1.4 HDFS块的大小
hdfs的文件在物理上是分块存储,块的大小可以通过配置参数dfs.blocksize(hdfs-default.xml)来规定,默认为128M;