HDFS
代码语言:javascript
复制 HDFS是Hadoop Distribute File System 的简称,
也就是Hadoop的一个分布式文件系统。
这里的“超大文件”是指几百MB、GB甚至TB级别的文件。
HDFS存储的数据集作为hadoop的分析对象。
HDFS的组成
代码语言:javascript
复制 1.NameNode:存储文件的元数据,如文件名,
文件目录结构,文件属性(创建时间,文件权限,文件大小)
以及每个文件的块列表和块所在的DataNode等。
类似于一本书的目录功能。
2.DataNode:在本地文件系统存储文件块数据,
以及块数据的校验和。
3.SecondaryNameNode:
用来监控HDFS状态的辅助后台程序,
每隔一段时间获取HDFS元数据的快照。
HDFS写数据流程
代码语言:javascript
复制 1.HDFS客户端向NameNode请求是否可以上传该文件
2.NameNode返回客户端可以上传该文件
3.客户端请求NameNode索要文件上传DataNode路径
4.NameNode返回客户端上传的DataNode地址
5.客户端根据返回的DataNode,与其建立通道
6.DataNode应答成功
7.客户端上传数据
HDFS读数据流程
代码语言:javascript
复制 1.HDFS客户端向NameNode请求下载文件
2.NameNode返回目标文件的元数据信息
3.客户端请求读取目标文件所在DataNode
4.DataNode向客户端传输数据