HDFS在Ubuntu上的扩容方法
HDFS在Ubuntu上的扩容主要分为**横向扩容(增加DataNode节点)和纵向扩容(提升现有节点硬件规格)**两类,其中横向扩容是分布式系统最常用的线性扩展方式。以下是详细操作步骤及注意事项:
java -version验证);/etc/hosts文件中(格式:IP 主机名),确保节点间可通过主机名互相访问;ssh-keygen -t rsa),并将公钥(id_rsa.pub)复制到新节点的~/.ssh/authorized_keys中(ssh-copy-id 新节点主机名),验证ssh 新节点主机名无需密码;sudo ufw disable)或放行Hadoop相关端口(如NameNode的8020、DataNode的50010等);core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml等配置文件复制到新节点的$HADOOP_HOME/etc/hadoop/目录下。$HADOOP_HOME/etc/hadoop/目录下,编辑workers文件(旧版本为slaves),添加新节点的主机名(每行一个),保存后同步该文件到所有NameNode节点;$HADOOP_HOME/sbin/hdfs --daemon start datanode
$HADOOP_HOME/sbin/yarn --daemon start nodemanager
hdfs dfsadmin -refreshNodes # 刷新NameNode节点列表
yarn rmadmin -refreshNodes # 刷新ResourceManager节点列表(YARN环境)
-threshold参数):hdfs balancer -threshold 10
hdfs balancer -status
hdfs dfsadmin -report命令查看集群节点列表,确认新节点的State为Live(存活状态);hdfs dfs -put /local/path/test.txt /test/),然后在新节点上执行hdfs dfs -cat /test/test.txt,验证数据是否可正常读取。fdisk /dev/sdX)、格式化(mkfs.ext4 /dev/sdX1)、挂载(mount /dev/sdX1 /data),并修改/etc/fstab实现开机自动挂载;dfs.datanode.data.dir)指向挂载点(如/data),需先停止DataNode服务(hdfs --daemon stop datanode),然后使用hdfs dfsadmin -setSpaceQuota调整配额(单位:字节),最后重启DataNode服务。dfs.blocksize从默认128MB调整为256MB或更大(减少NameNode元数据压力);dfs.replication(默认3,热数据可保持3,冷数据可降低至2);dfs.namenode.handler.count(NameNode线程数,默认10)和dfs.datanode.handler.count(DataNode线程数,默认10),提升并发处理能力。hdfs dfs -cp命令复制到本地或其他存储);core-site.xml中配置topology.script.file.name(机架感知脚本),确保数据副本分布在不同机架,避免单点故障;