首先,它是一个文件系统。
有一个统一的命名空间——目录树, 客户端访问hdfs文件时就是通过指定这个目录树中的路径来进行
其次,它是分布式的,由很多服务器联合起来实现功能;
- hdfs文件系统会给客户端提供一个统一的抽象目录树, Hdfs中的文件都是分块(block)存储的,块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本中是64M
- 文件的各个block由谁来进行真实的存储呢?----分布在各个datanode服务节点上,而且每一个block都可以存储多个副本(副本数量也可以通过参数设置dfs.replication,默认值是3)
- Hdfs中有一个重要的角色:namenode,负责维护整个hdfs文件系统的目录树,以及每一个路径(文件)所对应的block块信息(block的id,及所在的datanode服务器)
- hdfs是设计成适应一次写入,多次读出的场景,并不支持文件的修改
(hdfs并不适合用来做网盘应用,因为,不便修改,延迟大,网络开销大,成本太高)
特性:
容量可以线性扩展
数据存储高可靠
分布式运算处理很方便
数据访问延迟较大,不支持数据的修改操作
适合一次写入多次读取的应用场景