HDFS 基本概念:

块 Block 文件分块存储 默认64MB 逻辑单元
NameNode (管理节点,存放文件元数据)
    文件与数据库的映射表
    数据库与数据节点的映射表
DataNode (工作节点,存放数据块)

数据管理策略:

hdfs是采用master-slave的模式关管理文件,即一个master(namenade:保存datanode的一些基本信息和元数据)和多个slave(datanode:真正的存贮单元,里面存储了真实数据)
hdfs默认保存三份文件,有两份保存在同一台机器上,另外一份(备份文件)保存到另外一台机器上,确保当一台机器挂了时能保存数据的存在
namenade也有一个备用节点:Secondary NameNode,当namenode挂了时secondaryNameNode就变为nameNode的角色进行管理数据
datandoe会采用心跳的方式时不时的想namenode报告自己的基本信息,比如网络是否正常,运行是否正确常

HDFS 中文件读写的流程:

客户端发出读写请求,namenode根据元数据返回给客户端,下载需要的block并组装

HDFS 读取文件的流程:

客户端向namenode发起独立请求,把文件名,路径告诉namenode;
namenode查询元数据,并把数据库返回客户端;
此时客户端就明白文件包含哪些块,这些块在哪些datanode中可以找到;

HDFS 写入文件的流程:

客户端将文件拆分成块
客户端通知NameNode,NameNode返回可用的DataNode节点地址
客户端根据返回的DataNode将数据块写入到可用的DataNode中
因为数据块要有三份,所以会通过一个复制管道将每个数据块复制出另外两份并保存
更新元数据NameNode

HDFS 特点:

数据冗余,硬件容错(一式三份来保证)
流式数据访问:写一次,读多次,一旦写入无法修改,只能通过写入到新的块删除旧的块进行处理
存储大文件(特适合,因为小文件多,势必加重NameNode的负担)

优点:存储块大,吞吐量高,为存储大文件设计;适合一次写入多次读取,顺序读写
缺点:延迟高,不适合交互式访问,不支持多用户并发写相同文件

HDFS 使用:

它提供了 shell 接口,可以进行命令行操作,常用Hadoop的shell命令:

#hadoop fs -format     #格式化操作
#hadoop fs -ls /        #展示文件
#hadoop fs -cat input/hsdf-site.xml #查看Hadoop里面的指定文件
#hadoop fs -mkdir input  #未指明目录,表示在Hadoop的文件系统下的默认目录/user/root下新建
#hadoop fs -put hdsf-site.xml input/  #上传文件到Hadoop
#hadoop fs -get hdfs-site.xml hdfs-site2.xml #从Hadoop下载文件
#hadoop dfsadmin -report #查看HADF使用情况(所有信息)
Last modification:October 25th, 2019 at 10:41 am
如果觉得我的文章对你有用,请随意赞赏