Ubuntu Hadoop存储如何扩展
导读:Ubuntu Hadoop 存储扩展方案 一 扩展思路总览 水平扩展:新增 DataNode 节点,直接提升集群总容量与吞吐,适合长期规模化增长。 垂直扩展:为现有节点新增磁盘或扩容现有磁盘,快速缓解单节点容量瓶颈。 目录扩展:在现有节点...
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 存储目录的典型做法。
- 识别磁盘并分区格式化:例如设备为 /dev/sdb,执行分区后格式化:
-
扩展现有磁盘容量(虚拟机或云盘场景)
- 先在虚拟化平台扩展虚拟磁盘容量。
- 在 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>
- DataNode 多目录:
- 常用验证
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 等批量分发配置,减少人工误差。
这些现象与处理在扩容实践中较为常见,按上述步骤可快速定位与恢复。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Hadoop存储如何扩展
本文地址: https://pptw.com/jishu/760187.html
