如何在Ubuntu上配置HDFS集群
导读:在 Ubuntu 上配置 HDFS 集群 一 环境准备与规划 准备至少 2 台 Ubuntu 服务器(建议 16.04+),规划角色:至少 1 个 NameNode、1 个 DataNode(可多台)、可选 1 个 SecondaryNa...
在 Ubuntu 上配置 HDFS 集群
一 环境准备与规划
- 准备至少 2 台 Ubuntu 服务器(建议 16.04+),规划角色:至少 1 个 NameNode、1 个 DataNode(可多台)、可选 1 个 SecondaryNameNode 或后续升级为 HA。
- 所有节点保持同一网络,建议配置 静态 IP 与 主机名解析(/etc/hosts 或 DNS),确保节点间可互相 SSH 登录。
- 安装 Java(Hadoop 3.x 常用 OpenJDK 8):sudo apt update & & sudo apt install -y openjdk-8-jdk;验证:java -version。
- 配置 SSH 免密登录:在每台机器生成密钥(ssh-keygen -t rsa),将公钥分发到所有节点(ssh-copy-id user@host),便于脚本统一启停进程。
二 安装 Hadoop 与基础配置
- 下载并解压 Hadoop(示例版本 3.3.6):
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/ - 设置环境变量(~/.bashrc 或 /etc/profile,二选一,注意 JAVA_HOME 路径与系统一致):
export HADOOP_HOME=/usr/local/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
source ~/.bashrc - 目录规划:为 NameNode/DataNode 创建本地数据目录(示例:/data/hdfs/{ nn,dn} ),并确保运行 Hadoop 的用户拥有读写权限。
三 关键配置文件
- 配置目录:$HADOOP_HOME/etc/hadoop。以下为最小可用示例(按你的主机名与路径调整)。
- core-site.xml
- 指定默认文件系统与临时目录(示例主机名为 namenode): fs.defaultFS hdfs://namenode:9000 hadoop.tmp.dir /opt/hadoop/tmp
- 说明:fs.defaultFS 用于指定 NameNode RPC 地址;hadoop.tmp.dir 用于集中放置临时与本地元数据目录。
- hdfs-site.xml
- 指定副本数、NameNode/DataNode 本地目录、Secondary 地址(示例主机名 secondarynamenode): dfs.replication 2 dfs.namenode.name.dir /data/hdfs/nn dfs.datanode.data.dir/data/hdfs/dn dfs.namenode.secondary.http-address secondarynamenode:50090
- 说明:dfs.replication 为 副本数(测试可设 1,生产建议 3);dfs.namenode.name.dir/dfs.datanode.data.dir 为 本地存储路径(可配置多盘,逗号分隔);dfs.namenode.secondary.http-address 为 SecondaryNameNode Web 端口。
- 可选 YARN 与 MapReduce(如需运行 MapReduce/Spark on YARN)
- mapred-site.xml mapreduce.framework.name yarn
- yarn-site.xml yarn.resourcemanager.hostname resourcemanager yarn.nodemanager.aux-services mapreduce_shuffle
- 说明:指定 YARN 作为执行框架与 Shuffle 服务。
- 分发配置与目录
- 将 core-site.xml/hdfs-site.xml(及 yarn/mapred 配置)同步到所有节点相同路径。
- 在所有节点创建本地目录并赋权(示例用户为 hdfs):
sudo mkdir -p /data/hdfs/{ nn,dn}
sudo chown -R hdfs:hdfs /data/hdfs
四 启动与验证
- 格式化 NameNode(仅首次):在 NameNode 执行:hdfs namenode -format(如提示覆盖可用 -force,谨慎使用)。
- 启动 HDFS:在 NameNode 执行:start-dfs.sh;如使用 YARN,在 ResourceManager 执行:start-yarn.sh。
- 验证进程:jps 应看到 NameNode/DataNode/SecondaryNameNode(以及 ResourceManager/NodeManager 若启用 YARN)。
- 验证集群:
- hdfs dfsadmin -report(查看 DataNode 数量/容量)
- hdfs dfs -ls /(查看 根目录)
- Web 界面:
- HDFS NameNode:http://namenode:50070(Hadoop 2.x/3.x 常见端口)
- HDFS NameNode:http://namenode:9870(Hadoop 3.x 新端口)
- YARN ResourceManager:http://resourcemanager:8088
五 常见问题与优化
- 配置与权限:确保各节点 XML 配置一致;本地数据目录存在且 权限正确(运行用户可读写)。
- SSH 免密:NameNode 能免密登录所有 DataNode/Secondary,否则脚本启动会失败。
- 防火墙/安全组:放行 9000(RPC)、50070/9870(HDFS Web)、8088(YARN)、以及 DataNode 数据传输端口范围(默认 50010/50020/50075 等,视版本与配置而定)。
- 副本与容量:测试环境可将 dfs.replication 设为 1;生产建议 3,并确保集群总容量与副本策略匹配。
- 磁盘容错:多盘部署时可用 dfs.datanode.failed.volumes.tolerated 容忍少量坏盘;块大小 dfs.blocksize 默认 128MB,可按作业特性调整。
- 扩展节点:新增 DataNode 时,先同步配置与目录结构,再在目标节点启动:hdfs --daemon start datanode,随后用 hdfs dfsadmin -report 确认加入。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu上配置HDFS集群
本文地址: https://pptw.com/jishu/762328.html
