Hadoop分布式文件系统(HDFS)
HDFS是Hadoop Distributed File System的简称,意为:Hadoop分布式文件系统。
是Hadoop核心组件之一,作为最底层的分布式存储服务而存在。
分布式文件系统解决的问题就是大数据存储。
它是横跨在多台计算机上的存储系统。
块数据
主从架构
HDFS采用master/slave(主从)架构。一般一个HDFS集群是由一个Namenode和一定数目的Datanode组成。Namenode是HDFS集群主节点,Datanode是HDFS集群从节点,两种角色各司其职,共同协调完成分布式的文件存储服务。
NameNode工作机制
下图为名称节点和辅助名称节点的运作状态:
内存元数据(内存meta data)、磁盘元数据镜像文件(fsimage)、操作日志文件(edits)
DataNode工作机制
存储管理用户的文件块数据
定期向NameNode汇报自身所持有的block信息(通过心跳信息上报)
DataNode会定期(dfs.heartbeat.interval)向NameNode发送心跳,如果DataNode进程死亡或者网络故障造成DataNode无法与NameNode通信,NameNode不会立即把该DataNode节点判定为死亡,而是要经过一段时间,这段时间称作超时时长。
安全模式
在启动的时候,名称节点进入一个叫做安全模式的特殊状态。在这个模式下,意味着名称节点的文件系统对于客户端来说是只读的。
$>hdfs dfsadmin -safemode enter //进入
$>hdfs dfsadmin -safemode leave //离开(退出安全模式)
$>hdfs dfsadmin -safemode get //获取当前安全模式状态
$>hdfs dfsadmin -safemode wait //等待(先退出安全模式)
查看安全模式是否开启
进入安全模式
退出安全模式
dfsadmin工具
dfsadmin工具用途较广,既可以查找HDFS状态信息,又可以在HDFS上执行管理操作。以hdfs dfsadmin形式调用,且需要超级用户权限。
$>hdfs dfsadmin -report命令查看和下图WebUI查看内容一致
$>hdfs dfsadmin -fetchImage 从namenode节点获取最新的fsimage文件至本地指定目录
命令要在datanode节点上执行
在datanode节点看不到最新的fsimage文件,通过指令可以在datanode节点下查看到最新的fsimage文件,(namenode节点是可以查看到最新的fsimage)
$> hdfs oiv -p XML -i fsimage_0000000000000000xxx -o ~/Desktop/fsimage.xml
下载到本地之后通过cat查看是乱码(关闭窗口),通过指令将fsimage保存为xml文件,双击打开(windows)