Hadoop在Linux系统中的扩容指南
Hadoop集群扩容主要分为**横向扩展(新增节点)和纵向扩展(升级现有节点硬件)**两类,其中横向扩展是分布式集群提升容量的核心方式。以下是详细的扩容步骤及注意事项:
java -version验证)和Hadoop(如hadoop version验证),版本不符会导致兼容性问题。node04),并通过hostnamectl set-hostname node04生效。/etc/hosts文件:在集群所有节点(包括新节点)的/etc/hosts中添加IP与主机名的映射(如192.168.1.14 node04),确保主机名解析一致。master)向新节点生成SSH密钥(ssh-keygen -t rsa -P ""),并将公钥(id_rsa.pub)追加到新节点的~/.ssh/authorized_keys中(ssh-copy-id user@newnode_ip),实现无密码远程操作。systemctl stop firewalld)或开放Hadoop相关端口(如HDFS的50070、YARN的8088),避免通信阻断。将主节点的Hadoop安装目录(如/opt/hadoop)拷贝到新节点的相同路径(scp -r /opt/hadoop user@newnode_ip:/opt/),并同步$HADOOP_HOME/etc/hadoop下的配置文件(如core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml),确保新节点配置与集群一致。
$HADOOP_HOME/etc/hadoop/workers文件(或旧版本的slaves文件),添加新节点的主机名(如node04),该文件用于批量启动DataNode服务。dfs.hosts白名单(用于控制允许连接的DataNode),需编辑hdfs-site.xml,添加新节点到dfs.hosts指定的文件中(如/opt/hadoop/etc/hadoop/include),并同步该文件到所有节点。$HADOOP_HOME/sbin/hadoop-daemon.sh start datanode
$HADOOP_HOME/sbin/yarn-daemon.sh start nodemanager
jps命令查看新节点是否运行DataNode和NodeManager进程(如5813 DataNode、5935 Jps)。新增节点后,HDFS数据不会自动均衡分布,需手动触发平衡操作:
hdfs dfsadmin -setBalancerBandwidth 128000000 # 设置为128MB/s
-threshold参数指定阈值(如5表示各节点存储使用率差异不超过5%):hdfs balancer -threshold 5
hdfs balancer -status查看平衡状态,直到提示“The cluster is balanced”为止。若需提升YARN的计算资源,可新增NodeManager节点(步骤与新增DataNode类似):
workers文件中。NodeManager服务(yarn-daemon.sh start nodemanager)。http://resourcemanager_ip:8088),查看新节点是否加入集群。hdfs dfsadmin -report查看集群中DataNode的数量及存储使用情况,或访问NameNode Web界面(如http://namenode_ip:9870/dfshealth.html)。http://resourcemanager_ip:8088/cluster/nodes),确认新增的NodeManager节点已在线。hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 5 100),验证任务是否能正常调度到新节点执行。core-site.xml、hdfs-site.xml)必须与集群完全一致,尤其是fs.defaultFS(NameNode地址)、dfs.replication(副本数)等关键参数。keytab文件)。yarn.nodemanager.resource.memory-mb、dfs.datanode.handler.count)。