如何在Ubuntu上部署HDFS集群
导读:在 Ubuntu 上部署 HDFS 集群 一 环境准备与规划 准备至少2 台 Ubuntu 16.04+ 服务器,建议3 台及以上便于容错与扩展;同一局域网内,配置静态 IP与主机名解析(/etc/hosts 或 DNS),确保节点间可互...
在 Ubuntu 上部署 HDFS 集群
一 环境准备与规划
- 准备至少2 台 Ubuntu 16.04+ 服务器,建议3 台及以上便于容错与扩展;同一局域网内,配置静态 IP与主机名解析(/etc/hosts 或 DNS),确保节点间可互通。
- 在所有节点安装 Java 8(Hadoop 3.x 常用版本):sudo apt update & & sudo apt install -y openjdk-8-jdk;验证:java -version。
- 规划角色:至少 1 个 NameNode(可扩展为 HA)、多个 DataNode、可选 ResourceManager/NodeManager(若需 YARN)、以及用于 HA 的 JournalNode 与 ZooKeeper。
- 配置 SSH 免密登录:在规划为主节点的机器生成密钥(ssh-keygen -t rsa),将公钥分发到所有节点(含自身),以便脚本统一启停守护进程。
二 安装与基础配置
- 下载并解压 Hadoop(示例版本 3.3.6):
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/ - 设置环境变量(所有节点一致):
echo ‘export HADOOP_HOME=/usr/local/hadoop-3.3.6’ > > ~/.bashrc
echo ‘export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin’ > > ~/.bashrc
echo ‘export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64’ > > ~/.bashrc
source ~/.bashrc - 配置 Hadoop 环境脚本:在 $HADOOP_HOME/etc/hadoop/hadoop-env.sh 中显式设置 JAVA_HOME 等。
- 配置 workers(Hadoop 3.x 使用 workers 文件,旧版为 slaves):将所有 DataNode 主机名逐行写入 $HADOOP_HOME/etc/hadoop/workers。
三 核心配置文件
- 编辑 core-site.xml(指定默认文件系统地址,使用主机名或 IP):
fs.defaultFS hdfs://namenode:9000 - 编辑 hdfs-site.xml(示例为 3 副本,生产常用 3;设置本地元数据与数据目录,目录需提前创建并赋权):
dfs.replication 3 dfs.namenode.name.dir /data/hdfs/namenode dfs.datanode.data.dir /data/hdfs/datanode - 若需 YARN,编辑 mapred-site.xml 与 yarn-site.xml(示例):
mapred-site.xml:
mapreduce.framework.name yarn
yarn-site.xml:
yarn.resourcemanager.hostname resourcemanager yarn.nodemanager.aux-services mapreduce_shuffle - 目录准备与权限(示例):
sudo mkdir -p /data/hdfs/{ namenode,datanode}
sudo chown -R $(whoami):$(whoami) /data/hdfs
四 启动与验证
- 首次启动前在 NameNode 上格式化文件系统:
hdfs namenode -format - 启动 HDFS(在 NameNode 执行):
start-dfs.sh
如需 YARN,在 ResourceManager 节点执行:
start-yarn.sh - 验证进程与状态:
jps(应看到 NameNode/DataNode,若启用 YARN 则还有 ResourceManager/NodeManager)
hdfs dfsadmin -report(查看 DataNode 数量与容量)
yarn node -list(查看 NodeManager 注册情况) - Web 界面(Hadoop 3.x 常用端口):
HDFS NameNode:http://:9870
YARN ResourceManager:http://:8088
注:Hadoop 2.x 常见为 50070/8088。
五 常见问题与扩展
- 常见问题排查
- 配置不一致:核对所有节点的 core-site.xml/hdfs-site.xml/workers 是否一致。
- SSH 免密失败:确认 ~/.ssh/authorized_keys 包含主节点公钥,且目录权限正确(700/600)。
- 防火墙/安全组:放行 9000(HDFS RPC)、9870(NN Web)、8088(RM Web)等端口;云环境需配置安全组规则。
- 目录权限:确保 dfs.namenode.name.dir/dfs.datanode.data.dir 对运行用户可写。
- 日志定位:查看 $HADOOP_HOME/logs/ 下对应进程的日志文件。
- 扩展为高可用 HA(生产推荐)
- 部署 ZooKeeper 集群(3 台及以上) 与 JournalNode(3 台及以上)。
- 在 hdfs-site.xml 中配置 dfs.nameservices、dfs.ha.namenodes、dfs.namenode.rpc-address、dfs.namenode.shared.edits.dir(QJM) 与 dfs.ha.automatic-failover.enabled=true 等;在 core-site.xml 设置 fs.defaultFS=hdfs://。
- 初始化与启动:hdfs zkfc -formatZK;在各 JournalNode 上启动 hdfs --daemon start journalnode;格式化共享编辑日志并启动 NameNode/ZKFC,通过 hdfs haadmin -getServiceState nn1 检查状态。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu上部署HDFS集群
本文地址: https://pptw.com/jishu/748655.html
