简介
运行在安全模式下的,Namenode的文件系统对于客户端来说是只读的,文件修改操作如写,删除,重命名等均
机架感知策略
第一个副本在client所处的节点上。如果客户端在集群外,随机选一个。
第二个副本与第一个副本不相同机架,随机一个节点进行存储第三个副本与第二个副本相同机架,不同节点。
**节点动态上线
克隆一台新虚拟机
修改主机名
不是超级用户就需要使用sudo给权限
修改主机名
添加映射
配置静态ip
hwaddr要跟当前克隆的保持一致
配置网卡
注释第一个网卡把第二个网卡eth1 设置为eth0
重启reboot 关机init 0
第一步:修改dfs.hosts属性,指定文件include的全路径
第二步:将待上线的主机名hadoop104添加到dfs.hosts指定的文件内
第三步:在namenode上刷新节点:
hdfs dfsadmin -refreshNodes
第四步:在要上线的节点上重启datanode
sbin/hadoop-daemon.sh start datanode
第五步:通过hadoop dfsadmin-report 或者web界面,可以看到,节点已经上线。
第六步:最后修改白名单,添加上新主机名。以便集群重启时,带上此节点。**
删除历史文件
rm -rf /opt/module/hadoop-2.7.2/data/
rm -rf /opt/module/hadoop-2.7.2/logs/
格式化主节点
bin/hdfs namenode -format
**第一步.修改dfs.hosts.exclude属性,指定文件exclude的全路径
第二步.将待下线的主机名加入到dfs.hosts.exclude指定的文件中
第三步.在namenode节点上刷新节点:
hdfs dfsadmin -refreshNodes
第四步.通过hadoop dfsadmin-report或者web界面,进行查看。
第五步.然后删除白名单和黑名单中该节点的hosts,重新刷新hadoop dfsadmin-refreshNodes。
**
常用管理命令
hdfs dfsadmin -report [-livel-dead|-decommissioning]
-safemode [enter|leavelget |wait]
-rollEdits
-refreshNodes
-printTopology
hdfs fsck /
详解如下
https://blog.youkuaiyun.com/mnasd/article/details/82144497
edits_inprogress当前正在操作
强制执行事务滚动
hdfs dfsadmin -rollEdits
如果节点处于安全模式时只能执行读操作
格式化第一次启动
HDFS初始化后第一次加载
直接加载edits_001 和fismage_0000 和生成edits_inprogress文件
后续启动
启动HDFS就会直接加载最新的fismage和edits文件生成一个新的空的edits文件和生成一个包含所有的fismage的新文件和一edits_inprogress文件
为什么不直接写入fismage文件
edits 比较小 fismage 通过备份主节点 的内存进行合并就会比较快速
IPC 跨进程通信 RPC 远程过程调用
心跳机制
namenode 检测 datanode namenode 启动开启 一个IPC服务 等待datanode连接 datanode 启动后主动连接IPC服务并且三秒钟连接一次 时间是可以设置的 hearbeat ,每个一段时间连接一次的机制叫心跳机制 datanode 汇报自己的信息
namenode 通过心跳机制下达命令
属性1:dfs.namenode.heartbeat.recheck-interval的默认值为5000单位为毫秒
属性2:dfs.heartbeat.interval的默认值是3单位为秒
计算公式:2recheck+10heartbeat