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
相关推荐
無森~11 小时前
Hive概述
数据仓库·hive·hadoop
無森~11 小时前
Hive下载与安装
数据仓库·hive·hadoop
無森~11 小时前
Hive输出表信息中文乱码解决方案
数据仓库·hive·hadoop
無森~11 小时前
Hadoop序列化与反序列化
大数据·hadoop·分布式
计算机毕业编程指导师12 小时前
【计算机毕设选题】基于Spark的拉勾网招聘数据分析系统源码,Python+Django全流程
大数据·hadoop·python·spark·django·招聘·拉勾网
Msshu12312 小时前
多功能快充诱骗芯片 XSP26支持与主板共用一个Type-C可取电可输出数据
hadoop·mongodb·nosql·memcache·tdengine
B站计算机毕业设计超人1 天前
计算机毕业设计Python+百度千问大模型微博舆情分析预测 微博情感分析可视化 大数据毕业设计(源码+LW文档+PPT+讲解)
大数据·hive·hadoop·python·毕业设计·知识图谱·课程设计
王九思1 天前
大数据查询工具Hive介绍
大数据·hive·hadoop
王九思2 天前
Hive Hook 机制
数据仓库·hive·hadoop
走遍西兰花.jpg2 天前
hive如何使用python脚本
数据仓库·hive·hadoop·python