Hadoop HDFS实践攻略
理论部分:
- HDFS 基本原理
- 文件读取、写入机制
- 元数据管理思路
实践部分:
- 安装实践环境
- Shell 命令行操作方式
- Java API操作方式
HDFS基本原理
1. HDFS的解决思路
HDFS(Hadoop Distribute File System)是一个分布式文件系统,是Hadoop的重要成员。
HDFS是个抽象层,底层依赖很多独立的服务器,对外提供统一的文件管理功能,对于用户来讲,感觉就像在操作一台机器,感受不到HDFS下面的多台服务器。
HDFS首先会把这个文件进行分割,例如分为4块,然后分别放到不同服务器上。
这样做有个好处,不怕文件太大,并且读文件的压力不会全部集中在一台服务器上。但如果某台服务器坏了,文件就读不全了。
HDFS为保证文件可靠性,会把每个文件块进行多个备份:
这样文件的可靠性就大大增强了,即使某个服务器坏了,也可以完整读取文件。
同时还带来一个很大的好处,就是增加了文件的并发访问能力,比如多个用户读取这个文件时,都要读块1,HDFS可以根据服务器的繁忙程度,选择从那台服务器读块1
1. 元数据的管理
HDFS中存了哪些文件?
文件被分成了哪些块?
每个块被放在哪台服务器上?
……
这些都叫做元数据,这些元数据被抽象为一个目录树,记录了这些复杂的对应关系。这些元数据由一个单独的模块进行管理,这个模块叫做NameNode。存放文件块的真实服务器叫做DataNode,所以用户访问HDFS的过程可以理解为:
用户-> HDFS -> NameNode -> DataNode
3. HDFS优点
- 容量可以线性扩展
- 有副本机制,存储可靠性高,吞吐量增大
- 有了NameNode后,用户访问文件只需指定HDFS上的路径