- 首页 >
- 问答 >
-
云计算 >
- Ubuntu Hadoop存储如何扩展
Ubuntu Hadoop存储如何扩展
小樊
36
2025-12-01 01:22:14
Ubuntu Hadoop 存储扩展方案
一 扩展思路总览
- 水平扩展:新增 DataNode 节点,直接提升集群总容量与吞吐,适合长期规模化增长。
- 垂直扩展:为现有节点新增磁盘或扩容现有磁盘,快速缓解单节点容量瓶颈。
- 目录扩展:在现有节点上挂载多块盘,通过多目录并行写入提升容量与 I/O 并行度。
- 元数据扩展:为 NameNode 增加元数据存储目录,提升元数据可靠性与容量(与用户数据分开扩展)。
二 操作步骤
-
新增磁盘并挂载(单节点垂直扩展)
- 识别磁盘并分区格式化:例如设备为 /dev/sdb,执行分区后格式化:
sudo mkfs.ext4 /dev/sdb1。
- 创建挂载点并挂载:
sudo mkdir -p /mnt/hadoopdisk;sudo mount /dev/sdb1 /mnt/hadoopdisk。
- 配置开机自动挂载:将
/dev/sdb1 /mnt/hadoopdisk ext4 defaults 0 0 追加到 /etc/fstab。
- 目录权限:确保 Hadoop 运行用户对挂载点及子目录具备读写权限(如属主设为 hdfs 或运行用户)。
- 在 hdfs-site.xml 的 dfs.datanode.data.dir 中追加新目录(逗号分隔):
<property><name>dfs.datanode.data.dir</name><value>/data/dfs/data,/mnt/hadoopdisk</value></property>
- 滚动重启 DataNode(避免全停),或按你的启停脚本执行:
$HADOOP_HOME/sbin/stop-dfs.sh 与 $HADOOP_HOME/sbin/start-dfs.sh。
- 验证:
hadoop dfsadmin -report 查看节点容量是否增加;访问 **NameNode Web UI(Hadoop 3 为 9870 端口)**核对 DataNode 目录与容量。
- 数据均衡:执行
hdfs balancer 使块分布在新旧磁盘间均衡。
以上步骤适用于在 Ubuntu 环境下新增磁盘并纳入 HDFS 存储目录的典型做法。
-
扩展现有磁盘容量(虚拟机或云盘场景)
- 先在虚拟化平台扩展虚拟磁盘容量。
- 在 Ubuntu 中对系统盘扩容分区(可用 gparted 等工具),并重建 swap 分区,确保扩容后文件系统可用。
- 扩容完成后,HDFS 会自动识别到更大的文件系统容量;如未生效,可滚动重启 DataNode。
- 若因空间不足导致 NameNode 处于 Safe Mode,需先释放或扩容空间,再让其自动退出安全模式。
该流程在虚拟机环境中验证有效,可解决“磁盘扩容后 HDFS 未识别”的问题。
-
增加数据节点(水平扩展)
- 准备新节点:安装相同版本的 Java 与 Hadoop 3,配置 core-site.xml 的 fs.defaultFS、hdfs-site.xml 的 dfs.datanode.data.dir 与 dfs.namenode.name.dir、以及 mapred-site.xml / yarn-site.xml 的基础项。
- 在 workers(或旧版 slaves)文件中加入新节点主机名。
- 启动新节点的 DataNode(以及 NodeManager,若使用 YARN)。
- 在 NameNode Web UI(9870) 检查新节点是否注册成功与容量变化。
- 运行
hdfs balancer 均衡数据。
该流程适用于 Hadoop 3 的节点扩容,能同时提升存储与计算资源。
-
扩展 NameNode 元数据目录(可选)
- 为 NameNode 挂载新盘或新目录,确保权限正确。
- 在 hdfs-site.xml 中配置多个 dfs.namenode.name.dir(逗号分隔)以冗余与扩容元数据。
- 按你的升级/维护流程重启 NameNode,并监控其启动日志与 Web UI 状态。
多目录方式在生产中常用于提升 NameNode 可靠性与元数据容量。
三 配置与验证要点
- 关键配置示例
- DataNode 多目录:
<property><name>dfs.datanode.data.dir</name><value>/data/dfs/data,/mnt/hadoopdisk</value></property>
- NameNode 多目录(可选):
<property><name>dfs.namenode.name.dir</name><value>/data/dfs/name,/mnt/namenode</value></property>
- 多磁盘也可用于 MapReduce 本地目录(提升 shuffle/中间数据吞吐):
<property><name>mapred.local.dir</name><value>/data/mapred/local,/mnt/hadoopdisk/mapred</value></property>
- 常用验证
hadoop dfsadmin -report:查看各 DataNode 容量与使用情况。
- NameNode Web UI(Hadoop 3 为 9870):核对 Live Nodes、DFS Used/Remaining、各 DataNode 的 Data Directory 列表与容量。
hdfs balancer:均衡块分布,避免热点盘。
上述命令与 UI 路径可用于扩容后的快速验收与稳态维护。
四 常见问题与处理
- 磁盘满导致 Safe Mode:HDFS 在剩余空间极低时会进入 Safe Mode,需扩容或清理后再自动退出;强制离开可能再次进入。
- 新盘未生效:检查 挂载点权限、dfs.datanode.data.dir 是否包含新目录、以及是否完成滚动重启。
- 不均衡:新增磁盘或节点后运行
hdfs balancer,必要时设置带宽参数以控制对业务的影响。
- 配置分发:多节点操作建议使用 Ansible/Salt 等批量分发配置,减少人工误差。
这些现象与处理在扩容实践中较为常见,按上述步骤可快速定位与恢复。