Ubuntu Hadoop集群扩展步骤
环境检查
确保新节点已安装与集群版本一致的JDK(java -version验证)和Hadoop(hadoop version验证);配置新节点与集群所有节点的SSH免密登录(ssh-copy-id user@master_node_ip);在所有节点的/etc/hosts文件中添加新节点的IP与主机名映射(如192.168.1.13 node03),并同步该文件至集群所有节点。
Hadoop配置同步
将主节点$HADOOP_HOME/etc/hadoop/目录下的核心配置文件(core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml)复制到新节点对应目录,确保配置一致性(如fs.defaultFS指向NameNode地址、yarn.nodemanager.aux-services设置为mapreduce_shuffle)。
添加新节点到workers/slaves文件
编辑主节点$HADOOP_HOME/etc/hadoop/workers文件(部分版本为slaves),添加新节点的主机名(如node03),该文件用于批量启动新节点的服务。
配置白名单(可选,若启用)
若集群启用了dfs.hosts白名单(用于控制允许加入的DataNode),需编辑hdfs-site.xml,在<property name="dfs.hosts">中添加新节点的主机名或IP,然后刷新NameNode的白名单(hdfs dfsadmin -refreshNodes)。
在新节点上执行以下命令,启动Hadoop服务:
$HADOOP_HOME/sbin/hadoop-daemon.sh start datanode 或 $HADOOP_HOME/sbin/hdfs --daemon start datanode(Hadoop 3+推荐);$HADOOP_HOME/sbin/yarn-daemon.sh start nodemanager 或 $HADOOP_HOME/sbin/yarn --daemon start nodemanager(Hadoop 3+推荐)。检查节点状态
hdfs dfsadmin -report,查看HDFS节点列表是否包含新节点;http://<namenode_host>:9870),进入“DFS Health”→“Datanodes”查看新节点是否在线;yarn node -list或在ResourceManager Web界面(默认http://<resourcemanager_host>:8088)查看“Nodes”列表,确认新节点已加入YARN集群。测试集群功能
提交一个简单的MapReduce任务(如计算π值),验证新节点是否能正常参与计算:
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 5 100。
若新节点存储利用率低于集群平均水平,可执行数据均衡操作,将数据均匀分布到新节点:
hdfs balancer -threshold 10(-threshold为磁盘使用率差异阈值,单位%),等待均衡完成后停止(按Ctrl+C)。
JAVA_HOME、HADOOP_HOME等环境变量一致,避免因配置差异导致服务异常;8020、YARN的8088、NodeManager的50060等),允许节点间通信;dfs.hosts.exclude文件中添加节点,刷新白名单(hdfs dfsadmin -refreshNodes),等待节点数据迁移完成后,再停止服务并移除节点,避免数据丢失;auto_add_node.sh)实现新节点自动同步配置、启动服务,提高扩展效率(示例脚本见搜索结果)。