<property> <name>dfs.heartbeat.interval</name> <value>3</value> <description>Determines datanode heartbeat interval in seconds.</description> </property>
判断宕机的条件
namenode如何判断一个datanode宕机了?
连续的10次心跳报告接受不到
连续30s接受不到datanode的心跳认为datanode可能宕机,不能判定宕机
namenode会主动的向datanode发送检查:300000ms=300s=5min
1 2 3 4 5 6 7 8 9 10
<property> <name>dfs.namenode.heartbeat.recheck-interval</name> <value>300000</value> <description> This time decides the interval to check for expired datanodes. With this value and dfs.heartbeat.interval, the interval of deciding the datanode is stale or not is also calculated. The unit of this configuration is millisecond. </description> </property>
<property> <name>dfs.namenode.safemode.min.datanodes</name> <value>0</value> <description> Specifies the number of datanodes that must be considered alive before the name node exits safemode. Values less than or equal to 0 mean not to take the number of live datanodes into account when deciding whether to remain in safe mode during startup. Values greater than the number of datanodes in the cluster will make safe mode permanent. </description> </property>
<property> <name>dfs.namenode.safemode.threshold-pct</name> <value>0.999f</value> <description> Specifies the percentage of blocks that should satisfy the minimal replication requirement defined by dfs.namenode.replication.min. Values less than or equal to 0 mean not to wait for any particular percentage of blocks before exiting safemode. Values greater than 1 will make safe mode permanent. </description> </property>
安全模式的命令
手动进入和离开安全模式的命令
1 2 3 4 5
hdfs dfsadmin -safemode enter/leave/get/wait enter 进入安全模式 leave 离开安全模式 get 获取安全模式的状态 wait 等待离开安全模式
<property> <name>dfs.datanode.balance.bandwidthPerSec</name> <value>1048576</value> <description> Specifies the maximum amount of bandwidth that each datanode can utilize for the balancing purpose in term of the number of bytes per second. </description> </property>
手动进行负载均衡
集群的规模比较大的时候:1000个节点
自动进行负载均衡 太慢了
加大负载均衡的带宽
1 2 3 4 5 6 7 8 9
<property> <name>dfs.datanode.balance.bandwidthPerSec</name> <value>104857600000</value> <description> Specifies the maximum amount of bandwidth that each datanode can utilize for the balancing purpose in term of the number of bytes per second. </description> </property>