1. 元数据持久化
    原理如下:
  2. Hadoop学习笔记-4_hdfs


  3. Hadoop学习笔记-4_hdfs_02


  4. Hadoop学习笔记-4_hdfs_03

  5. 只有NameNode节点存在edits_xxx和fsimage_xxx,而DataNode节点是blk_xxx和blk_xxx.meta。DataNode节点会将Block List发给NameNode进行记录,并形成索引。
  6. 本地多目录
    多个目录之间使用逗号分隔
  • dfs.namenode.name.dir
    NameNode配置多个本地目录主要是为了可靠性;
    每个目录存放的内容相同;
  • dfs.datanonde.data.dir
    可以给不同的节点配置不同的数据存放目录;
    同一节点的不同的数据存放目录存放的数据内容不同——各目录之间不是备份的关系;
    数据节点配置多个目录不是为了可靠性;
    每个目录存放的数据内容不同;
  1. 常用端口
  • NameNode
    RPC:8020
    WebUI:50070
  • DataNode
    RPC:8032
    WebUI:50075
  • SecondaryNameNode
    WebUI:50090
  • HistoryServer
    WebUI:19888
  • ResourceManager
    WebUI:8088
  • NodeManager
    WebUI:8042
  1. 服役和退役
  • slaves配置了DataNode的节点集(一个节点主机一行)。作用只在集群启动时启动全量的集群节点。
  • dfs.hosts
    决定是否可以连接NameNode
  • dfs.hosts.exclude
    决定不能连接NameNode
  • Hadoop学习笔记-4_hadoop_04

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)
  1. Version
  • clusterID = xxx(NameNode == DataNode)
  • storageID = xxx(DataNode)
  • storageType = 角色(NameNode或者DataNode)
  • cTime 集群创建时间
  • ACL 权限控制
  1. 安全模式
  • 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