hadoop节点扩容和缩容操作流程

一、添加新节点(扩容)

添加新节点通常称为"节点上线"。

1. 准备工作
  1. 硬件与系统:确保新节点的硬件、操作系统、Java 版本等与现有集群一致。

  2. 网络:配置好主机名、hosts 文件、SSH 无密码登录等。

  3. Hadoop 配置 :将现有的 hdfs-site.xml, core-site.xml, yarn-site.xml, mapred-site.xml 等配置文件复制到新节点的 Hadoop 配置目录下。

  4. 启动 DataNode 和 NodeManager :在新节点上,使用 hadoop-daemon.shhdfs 命令启动服务。

    bash 复制代码
    # 使用 hdfs 命令(推荐)
    $HADOOP_HOME/bin/hdfs --daemon start datanode
    $HADOOP_HOME/bin/hdfs --daemon start nodemanager
    
    # 或者使用老版本的 hadoop-daemon.sh
    $HADOOP_HOME/sbin/hadoop-daemon.sh start datanode
    $HADOOP_HOME/sbin/yarn-daemon.sh start nodemanager
2. 如何"刷新"集群状态(让集群识别新节点)

对于 HDFS (DataNode):

HDFS 是自动发现的。一旦 DataNode 启动,它会主动联系配置文件中指定的 NameNode,并向其注册。NameNode 会自动将其加入到集群中。

  • 验证方法
    1. 访问 NameNode 的 Web UI(通常是 http://<namenode_ip>:9870)。
    2. 点击 "Datanodes",你应该能看到新加入的节点及其状态。
    3. 使用 HDFS 命令:hdfs dfsadmin -report,查看报告的 Live datanodes 数量和信息。

对于 YARN (NodeManager):

YARN 也是自动发现的。NodeManager 启动后会向 ResourceManager 注册。

  • 验证方法
    1. 访问 ResourceManager 的 Web UI(通常是 http://<resourcemanager_ip>:8088)。
    2. 点击 "Nodes",你应该能看到新加入的 NodeManager 节点。
    3. 使用 YARN 命令:yarn node -list,查看所有活跃的节点。

二、删除节点(缩容)

删除节点需要更谨慎一些,分为"优雅退役"和"强制退役"。我们通常采用优雅退役,以保证数据不丢失。

1. 配置退役节点(告知集群哪些节点要下线)

这是关键步骤,你需要通过修改配置文件来"刷新"集群的认知。

步骤:

  1. 创建排除列表文件:在 NameNode 和 ResourceManager 所在的机器上,创建两个文件:

    • dfs.exclude:用于 HDFS DataNode 退役。
    • yarn.exclude:用于 YARN NodeManager 退役。
      (文件路径和名称可以自定义)
  2. 编辑文件 :在每个文件中,逐行写入要退役的节点的主机名或 IP。
    示例 dfs.exclude 内容:

    复制代码
    datanode-04.cluster.example.com
    192.168.1.105

    示例 yarn.exclude 内容:

    复制代码
    nodemanager-04.cluster.example.com
    192.168.1.105
  3. 在配置文件中指向排除列表

    修改 NameNode 的 hdfs-site.xml,添加或修改以下属性:

    xml 复制代码
    <property>
      <name>dfs.hosts.exclude</name>
      <value>/path/to/your/dfs.exclude</value>
      <description>Path to file containing datanodes to exclude.</description>
    </property>

    修改 ResourceManager 的 yarn-site.xml,添加或修改以下属性:

    xml 复制代码
    <property>
      <name>yarn.resourcemanager.nodes.exclude-path</name>
      <value>/path/to/your/yarn.exclude</value>
      <description>Path to file containing nodemanagers to exclude.</description>
    </property>
2. 如何"刷新"集群状态(让集群开始退役流程)

对于 HDFS (DataNode):

  1. 刷新 NameNode:修改配置后,你需要让 NameNode 重新读取配置。

    bash 复制代码
    # 使用 hdfs 命令
    $HADOOP_HOME/bin/hdfs dfsadmin -refreshNodes

    这个命令就是 "刷新" 的魔法命令。它会让 NameNode 读取 dfs.hosts.exclude 文件。

  2. 观察退役过程

    • 执行命令后,该 DataNode 的状态会变为 "Decommission In Progress"
    • NameNode 会开始将这个节点上的数据块复制到集群中的其他节点。
    • 通过 hdfs dfsadmin -report 或 Web UI 监控进度,直到该节点状态变为 "Decommissioned"。此时,该节点上已无数据块。
  3. 关闭节点:当状态变为 "Decommissioned" 后,你就可以安全地在该节点上停止服务了。

    bash 复制代码
    $HADOOP_HOME/bin/hdfs --daemon stop datanode

对于 YARN (NodeManager):

  1. 刷新 ResourceManager:同样,需要让 ResourceManager 重新读取排除列表。

    bash 复制代码
    # 使用 yarn 命令
    $HADOOP_HOME/bin/yarn rmadmin -refreshNodes

    这个命令是 YARN 的 "刷新" 命令。

  2. 观察退役过程

    • 在 ResourceManager 的 Web UI 上,该 NodeManager 的状态会发生变化。
    • 它会等待当前正在运行的任务完成后,变为 "DECOMMISSIONED" 状态。
  3. 关闭节点:状态变为退役后,停止服务。

    bash 复制代码
    $HADOOP_HOME/bin/yarn --daemon stop nodemanager
相关推荐
BD_Marathon2 小时前
【Hive】复杂数据类型
数据仓库·hive·hadoop
q***31893 小时前
深入解析HDFS:定义、架构、原理、应用场景及常用命令
hadoop·hdfs·架构
尘世壹俗人11 小时前
分离Hadoop客户端单独使用
大数据·hadoop·分布式
BD_Marathon16 小时前
在 Linux 环境中配置 Eclipse 以开发 Hadoop 应用
java·hadoop·eclipse
CC-NX16 小时前
大数据安全技术实验:Hadoop环境部署
大数据·hadoop·分布式
秃头菜狗1 天前
十八、在slave01节点上安装Hadoop
服务器·hadoop·eclipse
muxue1782 天前
Hadoop集群搭建(上):centos 7为例(已将将安装所需压缩包统一放在了/opt/software目录下)
大数据·hadoop·centos
q***65693 天前
深入解析HDFS:定义、架构、原理、应用场景及常用命令
hadoop·hdfs·架构
muxue1783 天前
Hadoop集群搭建(下):centos 7为例(已将将安装所需压缩包统一放在了/opt/software目录下)
大数据·hadoop·centos