debian

Debian HDFS集群如何扩容

小樊
41
2025-11-03 08:46:33
栏目: 智能运维

Debian HDFS集群扩容指南(以添加DataNode为例)

一、扩容前准备

  1. 环境检查
    确保所有节点(包括新节点)满足以下条件:
    • 操作系统版本一致(如Debian 11/12);
    • Hadoop版本相同(如Hadoop 3.3.6);
    • 网络互通(能通过SSH无密码登录);
    • 防火墙/SELinux关闭(避免端口拦截)。
  2. 新节点基础配置
    • 网络设置:为新节点分配静态IP,修改/etc/hosts文件,添加集群所有节点的IP与主机名映射(如192.168.1.103 hadoop103);
    • 免密登录:在NameNode上生成SSH密钥(ssh-keygen -t rsa),将公钥(id_rsa.pub)拷贝到新节点的~/.ssh/authorized_keys文件中,验证ssh hadoop103能否无密码登录;
    • 时间同步:安装Chrony服务(apt install chrony),在NameNode上启动并设置开机自启(systemctl enable --now chronyd),新节点同步NameNode时间(chronyc sources -v);
    • JDK安装:下载并解压Oracle JDK(如jdk-11.0.20_linux-x64_bin.tar.gz),配置环境变量(JAVA_HOME=/usr/lib/jvm/jdk-11.0.20PATH=$JAVA_HOME/bin:$PATH),刷新配置(source /etc/profile)。

二、动态添加DataNode步骤

1. 配置NameNode节点(白名单)

在NameNode的$HADOOP_HOME/etc/hadoop目录下,编辑hdfs-site.xml文件,添加或修改以下属性(若文件不存在则新建):

<property>
  <name>dfs.hosts</name>
  <value>/home/hadoop/hadoop/etc/dfs.include</value> <!-- 白名单路径,需提前创建 -->
</property>

保存后,将hdfs-site.xml文件复制到集群所有节点的相同目录下(确保配置一致性)。

2. 新增DataNode主机信息

在NameNode的dfs.include文件中,添加新节点的主机名(如hadoop103),每行一个:

hadoop101
hadoop102
hadoop103  <!-- 新节点 -->

3. 配置新节点环境

在新节点上:

4. 启动新节点服务

在新节点上,启动DataNode和NodeManager服务:

hadoop-daemon.sh start datanode  # 启动DataNode
yarn-daemon.sh start nodemanager  # 启动NodeManager

或在所有节点上执行集群启动命令(start-dfs.shstart-yarn.sh),新节点会自动加入。

5. 验证节点加入

三、可选:触发数据平衡(优化存储分布)

添加新节点后,集群数据可能分布不均,需手动触发平衡操作:

  1. 停止所有DataNode服务(stop-dfs.sh);
  2. 启动HDFS平衡器(start-balancer.sh),默认阈值为10%(即节点存储使用率差异超过10%时会触发数据迁移);
  3. 监控平衡进度(hdfs balancer -status),直到所有节点的存储使用率差异小于阈值。

四、注意事项

0
看了该问题的人还看了