- 首页 >
- 问答 >
-
云计算 >
- HDFS数据存储在Ubuntu上如何实现
HDFS数据存储在Ubuntu上如何实现
小樊
33
2025-12-10 22:03:07
在 Ubuntu 上实现 HDFS 数据存储
一 环境准备与安装
- 安装 Java(推荐 OpenJDK 8 或 11):sudo apt update && sudo apt install -y openjdk-11-jdk;验证:java -version。
- 下载并解压 Hadoop(示例版本 3.3.4):wget https://downloads.apache.org/hadoop/core/hadoop-3.3.4/hadoop-3.3.4.tar.gz && tar -xzf hadoop-3.3.4.tar.gz -C /usr/local/。
- 配置环境变量(~/.bashrc 或 /etc/profile):
export HADOOP_HOME=/usr/local/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:source ~/.bashrc。
- 说明:HDFS 为 Hadoop 组件,安装 Hadoop 后即可使用 HDFS 能力。
二 配置 HDFS
- 编辑配置文件($HADOOP_HOME/etc/hadoop):
core-site.xml:
fs.defaultFShdfs://localhost:9000
hadoop.tmp.dir/usr/local/hadoop-3.3.4/tmp
hdfs-site.xml:
dfs.replication1
dfs.namenode.name.dir/usr/local/hadoop-3.3.4/data/namenode
dfs.datanode.data.dir/usr/local/hadoop-3.3.4/data/datanode
- 创建数据目录并赋权:
sudo mkdir -p /usr/local/hadoop-3.3.4/data/{namenode,datanode}
sudo chown -R $USER:$USER /usr/local/hadoop-3.3.4/data
- 首次启动前格式化 NameNode:hdfs namenode -format。
三 启动与验证
- 启动 HDFS:start-dfs.sh;如需资源管理可同时启动 YARN:start-yarn.sh。
- 进程检查:jps,应看到 NameNode、DataNode(以及 SecondaryNameNode;若启动 YARN 还会看到 ResourceManager、NodeManager)。
- Web 界面:NameNode http://localhost:50070;ResourceManager http://localhost:8088。
- 基本操作示例:
hdfs dfs -mkdir -p /user/$USER
hdfs dfs -put /etc/hadoop/.xml /user/$USER/input
hdfs dfs -ls /user/$USER/input
hdfs dfs -cat /user/$USER/output/
hdfs dfs -get /user/$USER/output ./output
四 多节点与运维要点
- 多节点部署:在每台机器重复安装与配置;在 core-site.xml 将 fs.defaultFS 指向 主节点主机名或IP:9000;在 slaves/workers 文件中列出所有 DataNode 主机名;配置 SSH 免密登录(ssh-keygen 与 ssh-copy-id);仅在主节点执行 start-dfs.sh 即可拉起集群。
- 防火墙放行:sudo ufw allow 9000,50070,8088(或临时关闭 ufw 测试)。
- 常用运维:
- 集群健康与容量:hdfs dfsadmin -report
- 安全关停:stop-dfs.sh(与 stop-yarn.sh)
五 性能与可靠性建议
- 副本数:单机或测试环境设 dfs.replication=1;生产环境建议 ≥3。
- 块大小:根据作业特点调整 dfs.blocksize(更大块利于顺序读,更小块利于并发与灵活)。
- 避免小文件:合并小文件以降低 NameNode 内存压力。
- 数据本地性与扩容:增加 DataNode 提升本地性与吞吐;必要时横向扩容。
- 压缩:选择 Snappy/LZO/Bzip2 在存储与 CPU 之间权衡。
- 监控与调优:持续关注读写延迟、吞吐与 RPC 指标,按负载调整参数。