Debian下Hadoop集群扩展方法主要分为动态扩容(添加新节点)和动态缩容(移除节点)两类,以下是详细操作步骤及注意事项:
ping命令测试);安装JDK(版本需与集群一致)、配置SSH免密登录(使NameNode能无密码访问新节点)、同步集群时间(使用ntpdate命令)。scp -rp /usr/local/hadoop user@newnode:/usr/local/),并设置环境变量(在~/.bashrc中添加export HADOOP_HOME=/usr/local/hadoop、export PATH=$PATH:$HADOOP_HOME/bin,然后执行source ~/.bashrc)。hdfs-site.xml,添加dfs.hosts属性,指定允许连接的DataNode列表(如<property><name>dfs.hosts</name><value>/usr/local/hadoop/etc/hadoop/dfs.hosts</value></property>)。yarn-site.xml,添加yarn.resourcemanager.nodes.include-path属性,指定允许连接的NodeManager列表(如<property><name>yarn.resourcemanager.nodes.include-path</name><value>/usr/local/hadoop/etc/hadoop/yarn.include</value></property>)。hdfs-site.xml、yarn-site.xml、core-site.xml、mapred-site.xml复制到新节点的Hadoop配置目录(如scp /usr/local/hadoop/etc/hadoop/*.xml user@newnode:/usr/local/hadoop/etc/hadoop/)。slaves文件(或dfs.hosts文件)中添加新节点的主机名(如newnode);若使用yarn.include文件,同样添加新节点主机名。$HADOOP_HOME/sbin/hadoop-daemon.sh start datanode
$HADOOP_HOME/sbin/yarn-daemon.sh start nodemanager
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes
hdfs dfsadmin -report # 查看DataNode列表
yarn node -list # 查看NodeManager列表
hdfs balancer命令进行数据均衡(默认阈值为10%,可调整-threshold参数,如hdfs balancer -threshold 5);若需提高均衡速度,可修改dfs.balance.bandwidthPerSec参数(单位:字节/秒,如hdfs balancer -bandwidth 10485760表示10MB/s)。hdfs-site.xml,添加dfs.hosts.exclude属性(如<property><name>dfs.hosts.exclude</name><value>/usr/local/hadoop/etc/hadoop/dfs.exclude</value></property>),并在该文件中添加待移除节点的主机名(每行一个)。$HADOOP_HOME/sbin/hadoop-daemon.sh stop datanode
$HADOOP_HOME/sbin/yarn-daemon.sh stop nodemanager
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes
hdfs dfsadmin -report查看DataNode状态,若待移除节点显示为“Decommissioning”(正在移除),等待其变为“Decommissioned”(已移除);通过yarn node -list查看NodeManager状态,确认其已移除。dfs.exclude文件中删除待移除节点的主机名;若不再需要该节点,可直接从集群中物理或逻辑移除。dfs.replication(数据副本数)设置合理(通常为3),避免数据丢失;扩容前备份重要配置文件(如hdfs-site.xml、yarn-site.xml)和数据。