與 NameNode 通信
-
dataNode向 nameNode發送註冊節點請求
-
nameNode 將數據寫入到元數據存儲, 並返回節點註冊成功
-
dataNode 週期性向 nameNode 上報節點數據信息, 保證 nameNode 元數據與 dataNode 節點數據一致
-
dataNode 每 3 秒向 nameNode 發送心跳, nameNode 返回沒有執行命令的確認數據
-
nameNode 超過 10 分鐘沒有收到某 dataNode心跳, 認爲該節點不可用
- 時長計算2 * dfs.namenode.heartbeat.recheck-interval + 10 * dfs.heartbeat.interval
- dfs.namenode.heartbeat.recheck-interval 默認 5 分鐘
- dfs.heartbeat.interval默認3 秒
- 所以時長是 10min 30s
hdfs-site.xml
<property> <name>dfs.namenode.heartbeat.recheck-interval</name> <value>300000</value> <description>單位毫秒</description> </property> <property> <name>dfs.heartbeat.interval</name> <value>3</value> <description>單位秒</description> </property>
服役新節點
-
準備乾淨的服務節點, 確認網絡正常, 設置 ssh 免密
-
配置 hadoop 配置文件,或直接複製現有節點, 配置網絡
-
直接啓動 dataNode 服務
hadoop-daemon.sh start datanode
-
啓動 nodeManager 服務
[atguigu@hadoop105 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager
-
使用命令實現集羣的再平衡(再數據不平衡下使用)
./start-balancer.sh
退役舊節點
-
添加白名單:添加到白名單的主機節點,都允許訪問NameNode,不在白名單的主機節點,都會被退出
-
在NameNode的/opt/module/hadoop/etc/hadoop目錄下創建dfs.hosts文件
vi dfs.hosts
-
添加白名單節點
hadoop162 hadoop163 hadoop164
-
在 nameNode 節點的 hdfs-site.xml配置啓動白名單dfs.hosts
<property> <name>dfs.hosts</name> <value>/opt/module/hadoop/etc/hadoop/dfs.hosts</value> </property>
-
分發同步到所有節點
xsync hdfs-site.xml
-
刷新 nameNode
hdfs dfsadmin -refreshNodes
-
更新ResourceManager節點
yarn rmadmin -refreshNodes
-
使用命令實現集羣的再平衡(再數據不平衡下使用)
./start-balancer.sh
-
-
黑名單退役: 在黑名單上面的主機都會被強制退出
-
在nameNode的/opt/module/hadoop/etc/hadoop目錄下創建dfs.hosts.exclude文件
vi dfs.hosts.exclude
-
添加退役節點
hadoop165
-
在nameNode的hdfs-site.xml配置文件中增加dfs.hosts.exclude屬性
<property> <name>dfs.hosts.exclude</name> <value>/opt/module/hadoop/etc/hadoop/dfs.hosts.exclude</value> </property>
-
刷新NameNode、刷新ResourceManager
hdfs dfsadmin -refreshNodes yarn rmadmin -refreshNodes
-
如果副本數小於等於當前集羣節點數, 退役會失敗, 需要修改副本數
-
在退役節點上, 停止節點服務
hadoop-daemon.sh stop datanode yarn-daemon.sh stop nodemanager
-
使用命令實現集羣的再平衡(再數據不平衡下使用)
./start-balancer.sh
-