温馨提示×

Ubuntu HDFS集群扩容怎么做

小樊
48
2025-11-09 06:34:57
栏目: 智能运维

Ubuntu环境下HDFS集群扩容步骤

一、扩容前准备

  1. 检查现有集群状态:使用hdfs dfsadmin -report命令确认集群健康状况(如NameNode、DataNode是否正常)、现有节点数量及存储使用情况,确保集群处于稳定状态。
  2. 备份关键数据:扩容操作前,备份HDFS中的重要数据(如/user目录下的关键文件),避免因配置错误或操作失误导致数据丢失。
  3. 准备新节点:选择一台或多台Ubuntu服务器作为新DataNode,确保其满足以下条件:
    • 安装与现有集群相同版本的Hadoop(如3.3.6);
    • 配置与现有节点一致的环境变量JAVA_HOMEHADOOP_HOME等,需添加到~/.bashrc并执行source ~/.bashrc);
    • 关闭防火墙或放行Hadoop所需端口(如NameNode的8020端口、DataNode的50010端口)。

二、配置新节点与集群同步

  1. 安装Hadoop:在新节点上下载并解压与集群一致的Hadoop版本(如hadoop-3.3.6.tar.gz),并设置安装目录(如/opt/hadoop)。
  2. 同步配置文件:将现有集群的/opt/hadoop/etc/hadoop/目录下的核心配置文件core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xmlworkers)复制到新节点的相同目录下。关键配置项说明:
    • core-site.xml:确保fs.defaultFS指向集群NameNode地址(如hdfs://master:9000);
    • hdfs-site.xml:确认dfs.replication(副本数,建议3)、dfs.datanode.data.dir(DataNode数据存储路径,如/opt/hadoop/data/datanode)配置正确;
    • workers文件:添加新节点的主机名或IP地址(如slave4),此文件用于集群启动时自动加载节点。
  3. 配置SSH免密登录:在NameNode上生成SSH密钥(ssh-keygen -t rsa),并将公钥(id_rsa.pub)复制到新节点的~/.ssh/authorized_keys文件中,确保NameNode能无密码访问新节点。

三、启动新节点并验证加入

  1. 启动DataNode服务:在新节点上执行hdfs --daemon start datanode命令启动DataNode进程,或通过集群启动脚本start-dfs.sh(在NameNode上执行)启动所有DataNode(包括新节点)。
  2. 验证节点加入:在NameNode上执行hdfs dfsadmin -report命令,查看输出结果中的“Live DataNodes”列表,确认新节点(如slave4)已成功加入集群。

四、数据平衡(可选但推荐)

  1. 触发平衡操作:在NameNode上执行start-balancer.sh命令,启动HDFS平衡器。平衡器会自动将数据块从已有节点迁移到新节点,使集群存储利用率趋于均衡。
  2. 监控平衡进度:执行hdfs balancer -status命令,查看平衡进度(如“Balancing is in progress”表示正在进行,“Balancing succeeded”表示完成)。平衡过程可能需要数小时,取决于数据量和集群规模。

五、扩容后验证

  1. 检查集群状态:再次执行hdfs dfsadmin -report,确认新节点的状态为“Live”,且存储使用量开始增长。
  2. 测试数据写入:向HDFS中写入测试文件(如hadoop fs -put /local/file /test),然后执行hdfs fsck /test -files -blocks -locations命令,检查文件块是否均匀分布在新节点上。

0