- 元数据持久化
原理如下: - 只有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
- Version
- clusterID = xxx(NameNode == DataNode)
- storageID = xxx(DataNode)
- storageType = 角色(NameNode或者DataNode)
- cTime 集群创建时间
- ACL 权限控制
- 安全模式
- NameNode启动时,合并fsimage和edit形成新的fsimage,并产生新的edit log。
- 安全模式下客户端只能读取。
- 查看NameNode是否位于安全模式:
- 手动保存镜像文件(当前最新镜像)
- 保存元数据到$HADOOP_HOME/logs/
- 启动均衡器
让集群在数据存储上更为平均。