-
元数据持久化
原理如下:
只有NameNode节点存在edits_xxx和fsimage_xxx,而DataNode节点是blk_xxx和blk_xxx.meta。DataNode节点会将Block List发给NameNode进行记录,并形成索引。 -
本地多目录
多个目录之间使用逗号分隔
- dfs.namenode.name.dir
NameNode配置多个本地目录主要是为了可靠性;
每个目录存放的内容相同; - dfs.datanonde.data.dir
可以给不同的节点配置不同的数据存放目录;
同一节点的不同的数据存放目录存放的数据内容不同——各目录之间不是备份的关系;
数据节点配置多个目录不是为了可靠性;
每个目录存放的数据内容不同;
- 常用端口
- NameNode
RPC:8020
WebUI:50070 - DataNode
RPC:8032
WebUI:50075 - SecondaryNameNode
WebUI:50090 - HistoryServer
WebUI:19888 - ResourceManager
WebUI:8088 - NodeManager
WebUI:8042
- 服役和退役
- slaves配置了DataNode的节点集(一个节点主机一行)。作用只在集群启动时启动全量的集群节点。
- dfs.hosts
决定是否可以连接NameNode - dfs.hosts.exclude
决定不能连接NameNode
1) 创建/soft/hadoop/etc/dfs-hosts-include.conf文件
s200
s300
2) 创建/soft/hadoop/etc/dfs-hosts-exclude.conf文件
s300
s400
3) 编辑配置文件hdfs-site.xml
dfs.hosts=/soft/hadoop/etc/dfs-hosts-include.conf
dfs.hosts.exclude=/soft/hadoop/etc/dfs-hosts-exclude.conf
4) 分发hdfs-site.xml文件到所有节点
5) 刷新节点
hdfs dfsadmin -refreshNodes
hdfs dfsadmin -help refreshNodes
- Version
- clusterID = xxx(NameNode == DataNode)
- storageID = xxx(DataNode)
- storageType = 角色(NameNode或者DataNode)
- cTime 集群创建时间
- ACL 权限控制
- 安全模式
- NameNode启动时,合并fsimage和edit形成新的fsimage,并产生新的edit log。
- 安全模式下客户端只能读取。
- 查看NameNode是否位于安全模式:
hdfs dfsadmin -safemode get # 查看
hdfs dfsadmin -safemode enter # 进入
hdfs dfsadmin -safemode leave #离开
- 手动保存镜像文件(当前最新镜像)
hdfs dfsadmin -fetchImage /path/dir
- 保存元数据到$HADOOP_HOME/logs/
hdfs dfsadmin -metasave data_xxx.meta
- 启动均衡器
让集群在数据存储上更为平均。
start-balance.sh