• HDFS 动态扩容、动态缩容以及黑白名单


    动态扩容、节点上线

    节点上线: 之一HDFS集群容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的DataNode节点,俗称动态扩容、节点服役

    Step 1 : 新机器基础环境的准备

    • 主机名、IP配置
    • Hosts配置
    • 防火墙、时间同步

    Step 2 : Hadoop配置

    • 修改namenode节点workers配置文件,增加新节点主机名,便于后续一件启停
    • 从namenode节点复制hadoop节点,需要注意的是不包括hadoop.tmp、tmp.dir指定的数据存储目录
    • 新机器记得配置hadoop环境变量

    Step 3 : 手动启动DateNode节点

    hdfs --daemon start datanode

    查看是否启动成功

    jps

    image-20221103102541783

    显然启动成功

    Step 4 : WebUi查看是否已经添加成功

    image-20221103102647067

    显然已经添加成功

    Step 5 : DataNode 负载均衡

    • 新加入的节点没有数据存储,看起来负载不均衡,因此最后还需要对hdfs进行一个负载均衡。首先设置数据传输的带宽

      hdfs dfsadmin -setBalancerBandwidth 104857600 # 100M

      image-20221103103142396

    • 启动Balancer,等待集群自均衡完成

      hdfs balancer -threshold 5 # 认为如果从差距在5%左右就认为负载均衡

      image-20221103103157365

      由于文件数量过少,则进行的非常快

    动态缩容、节点下线

    • 节点下线: 服务器需要进行退役更换,需要在当下的集群中停止某些机器上的datanode的服务。俗称动态缩容、节点退役

    Step 1 : 添加退役节点

    • 在namenode机器的hdfs-site.xml配置文件中需要提前配置dfs.hosts.exclude属性,该属性指向的文件就是所谓的黑名单列表,会被namenode排除在集群之外,如果文件内容为空,则意味着不禁止任何机器
    • 提前配置好的目的是让namenode启动的时候就能够加载到该属性,只不过没有指定任何机器。否则就需要重启namenode才能加载,因此这样的操作我们称之为具有前瞻的性操作
    <property>
        <name>dfs.hosts.excludename>
        <value>/opt/module/hadoop-3.3.1/etc/hadoop/excludesvalue>
    property>
    
    • 1
    • 2
    • 3
    • 4

    在进行此操作之前查看各个节点的状态:

    image-20221103112638186

    我们需要配置文件,讲不需要的节点填进去,这里将hadoop135节点下线,只需要在上述文件中加入hadoop135节点名称然后进行刷新即可。

    Step 2 : 刷新集群

    # 刷新
    hdfs dfsadmin -refreshNodes
    
    • 1
    • 2

    然后再查看UI:

    image-20221103112800313

    发现135节点已经下线

    Step 3 :关闭节点

    hdfs --daemon stop datanode

    HDFS集群黑、白名单机制

    白名单

    • 所谓的白名单指的是允许那些机器加入到当前的HDFS集群中,是一种准入机制
    • 白名单由dfs.hosts参数指定,改参数位于hdfs-site.xml。默认为空
    • dfs.hosts指向文件,该文件包括允许连接到namenode的主机列表,必须指定文件的完整路径名,如果该值为空,则允许所有主机准入

    黑名单

    • 所谓的黑名单指的是禁止那些机器加入到当前的HDFS集群中,是一种禁入机制
    • 黑名单由hdfs.hosts.exclude参数指定,改参数位于hdfs-site.xml。默认为空
    • dfs.hosts.exclude指向文件,该文件包含不允许连接到名称节点的主机列表。必须指定文件的完整路及名称。如果该值为空,则不仅指任何主机加入
  • 相关阅读:
    drools决策表的简单使用
    武汉新时标文化传媒有限公司“土味”正在崛起,短视频的春天来了
    golang语言的gofly快速开发框架如何设置多样的主题说明
    docker学习-入门篇
    用过才知道AI配音软件有多方便,推荐四款高度好评的配音工具~
    猿创征文 第二季| #「笔耕不辍」--生命不息,写作不止#
    [Linux](15)线程基础,线程控制,线程的互斥与同步
    制造业数字化转型究竟是什么
    ESP32 ESP-IDF TFT-LCD(ST7735 128x160) LVGL演示
    ASP.NET二手商品交易系统VS开发sqlserver数据库web结构c#编程计算机网页目
  • 原文地址:https://blog.csdn.net/m0_53341445/article/details/127679094