Debian HDFS集群搭建步骤详解
导读:Debian 上搭建 HDFS 集群步骤详解 一 环境准备与规划 节点规划:至少准备 1 台 NameNode + 多台 DataNode;如需资源管理可同时部署 YARN(ResourceManager + NodeManager)。...
Debian 上搭建 HDFS 集群步骤详解
一 环境准备与规划
- 节点规划:至少准备 1 台 NameNode + 多台 DataNode;如需资源管理可同时部署 YARN(ResourceManager + NodeManager)。
- 软件要求:安装 Java 8 或更高版本(推荐 OpenJDK 8/11),在所有节点保持一致。
- 网络与主机名:确保节点间可互通,建议使用 静态 IP 或稳定的主机名;在 /etc/hosts 中配置所有节点的 IP ↔ 主机名 映射,避免仅依赖 DNS。
- 目录与权限:规划 Hadoop 安装目录 与 HDFS 数据目录(如 NameNode/DataNode 数据目录),并确保运行用户对其拥有读写权限。
- 基础工具:安装 SSH 客户端/服务端,便于集群内免密登录与脚本化管理。
以上要点与示例做法可参考在 Debian 上部署 Hadoop 集群的通用流程与配置说明。
二 安装与基础配置
- 安装 Java(示例为 OpenJDK 11):
sudo apt update & & sudo apt install -y openjdk-11-jdk
java -version - 创建专用用户(推荐):
sudo adduser hadoop
sudo usermod -aG sudo 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 hadadoop-3.3.6.tar.gz -C /usr/local
sudo ln -sfn /usr/local/hadoop-3.3.6 /usr/local/hadoop - 配置环境变量(所有节点一致):
在 /etc/profile 或 ~/.bashrc 中添加:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:source /etc/profile - 配置 SSH 免密登录(NameNode 能免密登录各节点,含本机):
ssh-keygen -t rsa -b 4096 -C “hadoop@$(hostname)”
ssh-copy-id hadoop@namenode
ssh-copy-id hadoop@datanode1
ssh-copy-id hadoop@datanode2
以上安装与环境变量设置、SSH 免密登录为集群部署的基础步骤。
三 核心配置
- 主机名解析(所有节点 /etc/hosts 示例):
192.168.1.10 namenode
192.168.1.11 datanode1
192.168.1.12 datanode2 - 配置 hadoop-env.sh:
设置 JAVA_HOME(如使用 OpenJDK 11):
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 - 配置 core-site.xml(指定默认文件系统与临时目录):
fs.defaultFS
hdfs://namenode:9000
hadoop.tmp.dir
/opt/hadoop/tmp
- 配置 hdfs-site.xml(副本数与数据目录):
dfs.replication
3
dfs.namenode.name.dir
file:///opt/hadoop/hdfs/namenode
dfs.datanode.data.dir
file:///opt/hadoop/hdfs/datanode
- 配置 workers(旧版为 slaves,指定 DataNode 主机名):
datanode1
datanode2
以上关键配置项(fs.defaultFS、dfs.replication、namenode/data 目录、workers/slaves)为 HDFS 最小可用配置集合。
四 启动与验证
- 创建数据目录(所有节点):
sudo mkdir -p /opt/hadoop/tmp /opt/hadoop/hdfs/{ namenode,datanode}
sudo chown -R hadoop:hadoop /opt/hadoop - 格式化 NameNode(仅首次,在 NameNode 执行):
sudo -u hadoop hdfs namenode -format - 启动 HDFS(在 NameNode 执行):
sudo -u hadoop start-dfs.sh - 基本验证:
- 进程检查:jps(应看到 NameNode/DataNode 等进程)
- 集群报告:hdfs dfsadmin -report(查看 Live datanodes 数量与容量)
- Web UI:NameNode Web 界面默认端口 9870(访问 http://namenode:9870)
- 简单读写:
hdfs dfs -mkdir -p /test
echo “Hello HDFS” | hdfs dfs -put - /test/hello.txt
hdfs dfs -cat /test/hello.txt
以上启动与验证步骤适用于 Hadoop 3.x 版本;如使用 2.x,NameNode Web 端口通常为 50070。
五 常见问题与扩展
- 端口连通性:若访问 9000 端口失败,优先使用节点的 主机名 而非 localhost 或 127.0.1.1;确保防火墙放行相关端口(如 9000/9864/9866/9870)。
- 权限问题:HDFS 根目录权限不足时,可临时放宽:hdfs dfs -chmod 777 /(生产环境请按最小权限原则设置)。
- 副本数调整:修改 dfs.replication 仅影响新写入数据;已有数据可用:
hdfs dfs -setrep -w 3 /your/path - 扩容 DataNode:禁止直接拷贝已有 DataNode 的磁盘数据目录到新节点,否则会出现 DataNode UUID 冲突;应清空数据目录后启动新 DataNode 让其自行注册。
- 高可用扩展(HA):如需 NameNode 高可用,需部署 ZooKeeper 与 JournalNode,在 core-site.xml 设置 fs.defaultFS=hdfs://mycluster 与 ha.zookeeper.quorum,在 hdfs-site.xml 配置 dfs.nameservices、dfs.ha.namenodes、dfs.namenode.rpc-address、dfs.client.failover.proxy.provider、dfs.ha.fencing.methods、dfs.journalnode.edits.dir、dfs.namenode.shared.edits.dir 等参数,并按顺序启动 JournalNode → NameNode → ZKFC/自动故障转移。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian HDFS集群搭建步骤详解
本文地址: https://pptw.com/jishu/789971.html
