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
相关推荐
BYSJMG1 小时前
计算机毕设选题做什么好?基于大数据的用户健身行为数据分析与可视化系统,Hadoop+Spark处理
大数据·人工智能·hadoop·数据分析·spark·课程设计
ha_lydms12 小时前
HDFS 简介
大数据·hadoop·hdfs·yarn·调度·aliyun·计算
2601_9622980914 小时前
零基础学大数据分析全栈
hadoop·python·spark·实战·大数据分析
ha_lydms1 天前
HDFS的读写流程
大数据·hadoop·hdfs·mapreduce·yarn·maxcompute·odps
BYSJMG2 天前
大数据毕业设计选题推荐:基于大数据的全球气温历史演变分析与可视化,用Hadoop+Spark处理
大数据·hadoop·分布式·信息可视化·spark·kmeans·课程设计
fastjson_2 天前
Hive 自定义函数
数据仓库·hive·hadoop
张工在路上4 天前
WPF 布局基础概述
大数据·hadoop·wpf
BYSJMG4 天前
计算机毕设选题|基于大数据与文本挖掘的自动驾驶事故成因分析及可视化研究|Hadoop+PySpark+Django+Vue
大数据·hadoop·信息可视化·django·自动驾驶·kmeans·课程设计
BI专家之路5 天前
安装linux/hadoop/jdk/hive
linux·hive·hadoop
2601_962073977 天前
大数据-258 离线数仓 - Griffin架构 配置安装 Livy 架构设计 解压配置 Hadoop Hive
大数据·hadoop·架构