ubuntu

Ubuntu Hadoop 集群如何扩展

小樊
50
2025-10-04 07:04:33
栏目: 智能运维

Ubuntu Hadoop集群扩展步骤

一、前置准备

  1. 新节点环境配置
    确保新节点与现有集群节点的操作系统版本、Java环境(建议OpenJDK 8/11)、Hadoop版本一致。安装Java(sudo apt install openjdk-11-jdk -y)、配置静态IP(通过netplan编辑/etc/netplan/01-network-manager-all.yaml并应用)、设置主机名(sudo hostnamectl set-hostname newnode)。
  2. 网络与SSH互通
    在所有节点(包括新节点)的/etc/hosts文件中添加集群节点的IP与主机名映射(如192.168.1.10 master192.168.1.11 newnode),确保节点间能互相ping通。配置SSH免密登录:在主节点生成密钥(ssh-keygen -t rsa),将公钥(id_rsa.pub)复制到新节点(ssh-copy-id hadoop@newnode),测试免密登录(ssh newnode)。

二、配置文件同步与修改

  1. 同步Hadoop配置文件
    将主节点$HADOOP_HOME/etc/hadoop目录下的核心配置文件(core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xmlworkers)复制到新节点的相同目录。这些文件需保持集群一致性,避免配置冲突。
  2. 更新workers文件
    在主节点的$HADOOP_HOME/etc/hadoop/workers文件中,添加新节点的主机名(每行一个,如newnode)。该文件用于定义集群中的DataNode和NodeManager节点。
  3. 可选:调整HDFS副本数
    若集群副本数(dfs.replication,默认3)大于新节点数量,需修改hdfs-site.xml中的dfs.replication为新节点数量(如<property><name>dfs.replication</name><value>2</value></property>),或在后续通过hdfs dfsadmin -setReplication <path> <replication>命令调整特定路径的副本数。

三、启动新节点服务

  1. 启动DataNode与NodeManager
    在新节点上,使用Hadoop守护进程命令启动DataNode(存储HDFS数据)和NodeManager(运行YARN任务):
    hdfs --daemon start datanode
    yarn --daemon start nodemanager
    
    可通过jps命令验证服务是否启动(应显示DataNodeNodeManager进程)。

四、刷新集群状态

  1. 刷新NameNode与ResourceManager
    在主节点上执行以下命令,使集群识别新加入的节点:
    hdfs dfsadmin -refreshNodes  # 刷新NameNode,识别新DataNode
    yarn rmadmin -refreshNodes    # 刷新ResourceManager,识别新NodeManager
    
    执行后,可通过hdfs dfsadmin -report查看DataNode列表,或yarn node -list查看NodeManager列表,确认新节点已加入。

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

  1. 启动HDFS Balancer
    新节点加入后,集群数据可能分布不均(新节点数据少)。使用Balancer工具重新分配数据,提升集群利用率:
    start-balancer.sh
    
    默认平衡阈值为10%(数据块分布差异不超过10%),可通过-threshold参数调整(如start-balancer.sh -threshold 5),平衡过程需一定时间(取决于数据量和网络带宽)。

六、验证扩展结果

  1. 检查节点状态
    通过Hadoop Web界面(NameNode默认端口9870、ResourceManager默认端口8088)查看集群节点列表,确认新节点的状态为“Live”。或使用命令行:
    hdfs dfsadmin -report | grep "Live datanodes"  # 查看DataNode数量
    yarn node -list | grep "RUNNING"              # 查看NodeManager数量
    
  2. 测试数据写入
    向HDFS写入测试文件(如hdfs dfs -put /local/file /test),然后查看文件块分布(hdfs fsck /test -files -blocks -locations),确认新节点存储了部分数据块。

注意事项

0
看了该问题的人还看了