hadoop hdfs DataNode管理

與 NameNode 通信

在這裏插入圖片描述

  1. dataNode向 nameNode發送註冊節點請求

  2. nameNode 將數據寫入到元數據存儲, 並返回節點註冊成功

  3. dataNode 週期性向 nameNode 上報節點數據信息, 保證 nameNode 元數據與 dataNode 節點數據一致

  4. dataNode 每 3 秒向 nameNode 發送心跳, nameNode 返回沒有執行命令的確認數據

  5. 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>
    

服役新節點

  1. 準備乾淨的服務節點, 確認網絡正常, 設置 ssh 免密

  2. 配置 hadoop 配置文件,或直接複製現有節點, 配置網絡

  3. 直接啓動 dataNode 服務

    hadoop-daemon.sh start datanode
    
  4. 啓動 nodeManager 服務

    [atguigu@hadoop105 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager
    
  5. 使用命令實現集羣的再平衡(再數據不平衡下使用)

    ./start-balancer.sh
    

退役舊節點

  • 添加白名單:添加到白名單的主機節點,都允許訪問NameNode,不在白名單的主機節點,都會被退出

    1. 在NameNode的/opt/module/hadoop/etc/hadoop目錄下創建dfs.hosts文件

      vi dfs.hosts
      
    2. 添加白名單節點

      hadoop162
      hadoop163
      hadoop164
      
    3. 在 nameNode 節點的 hdfs-site.xml配置啓動白名單dfs.hosts

      <property>
      		<name>dfs.hosts</name>
      		<value>/opt/module/hadoop/etc/hadoop/dfs.hosts</value>
      </property>
      
      
    4. 分發同步到所有節點

      xsync hdfs-site.xml
      
    5. 刷新 nameNode

      hdfs dfsadmin -refreshNodes
      
    6. 更新ResourceManager節點

      yarn rmadmin -refreshNodes
      
    7. 使用命令實現集羣的再平衡(再數據不平衡下使用)

      ./start-balancer.sh
      
  • 黑名單退役: 在黑名單上面的主機都會被強制退出

    1. 在nameNode的/opt/module/hadoop/etc/hadoop目錄下創建dfs.hosts.exclude文件

      vi dfs.hosts.exclude
      
    2. 添加退役節點

      hadoop165
      
    3. 在nameNode的hdfs-site.xml配置文件中增加dfs.hosts.exclude屬性

      <property>
      		<name>dfs.hosts.exclude</name>
          <value>/opt/module/hadoop/etc/hadoop/dfs.hosts.exclude</value>
      </property>
      
      
    4. 刷新NameNode、刷新ResourceManager

      hdfs dfsadmin -refreshNodes
      yarn rmadmin -refreshNodes
      
    5. 如果副本數小於等於當前集羣節點數, 退役會失敗, 需要修改副本數

    6. 在退役節點上, 停止節點服務

      hadoop-daemon.sh stop datanode
      yarn-daemon.sh stop nodemanager
      
    7. 使用命令實現集羣的再平衡(再數據不平衡下使用)

      ./start-balancer.sh
      
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章