1. 概念
HDFS是一个分布式文件系统,Hadoop distributed file system。通过树形结构定位文件,由多台服务组合实现其功能,集群中各个机器具有自己的角色
2. 组成
HDFS集群包括NameNode,DataNode,SecondaryNameNode
- NameNode
负责管理整个文件系统的元数据,以及每一个路径对应的数据块信息 - DataNode
负责管理用户的文件数据块,每个块都可以再多dataNode上存在副本 - SecondaryNameNode
负责监控HDFS状态的辅助节点,每个一段时间对NameNode的元数据进行合并
3. HDFS块的大小
HDFS中默认块大小128M(2版本以前是64M),可以通过dir.blocksize来进行设置。
通常这个块的大小远大与磁盘上的块(512Byte),目的是使访问数据时寻址所占用时间比例最低,访问效率(磁盘传输时间 / 磁盘传输时间 + 文件寻址时间)更高
把更多的时间用于传输
例如,目前磁盘的传输效率大约100M/s,而寻址时间通常是10ms,通常寻址时间占总共传输时间的1%。因此,每个块100M是比较合适的大小。(大量生产实践的结果)
4. HDFS的常用操作
基础命令格式
hadoop fs -具体指令
常见的指令与linux中相似,如
hadoop fs -ls / # 查看目录
hadoop fs -cat /aaa # 查看文件
hadoop fs -put a.txt /dir # 上传文件
hadoop fs -get /dir/a.txt /opt/test # 下载文件
hadoop fs -rm -rf /dir/a.txt # 删除文件/目录
等等命令