在 Debian 上安装与部署 HDFS 的实操步骤
一 环境准备
- 更新系统并安装 Java(Hadoop 3.x 建议使用 Java 8 或 11):
- 更新软件源并升级:sudo apt update && sudo apt upgrade -y
- 安装 OpenJDK:sudo apt install -y openjdk-11-jdk(或 openjdk-8-jdk)
- 验证版本:java -version
- 创建专用用户(推荐):sudo adduser hadoop && sudo usermod -aG sudo hadoop
- 配置主机名解析(所有节点):编辑 /etc/hosts,例如
- 192.168.1.100 master
- 192.168.1.101 node1
- 192.168.1.102 node2
- 配置 SSH 免密登录(以 hadoop 用户执行):
- ssh-keygen -t rsa -b 4096 -C “hadoop@master”
- ssh-copy-id hadoop@master
- ssh-copy-id hadoop@node1
- ssh-copy-id hadoop@node2
- 下载并解压 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/
- sudo ln -sfn /usr/local/hadoop-3.3.6 /usr/local/hadoop
- 配置环境变量(建议写入 ~/.bashrc 或 /etc/profile):
- export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
- export HADOOP_HOME=/usr/local/hadoop
- export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 使生效:source ~/.bashrc
二 配置 HDFS(核心文件)
- 配置目录:进入 $HADOOP_HOME/etc/hadoop/
- core-site.xml
-
fs.defaultFShdfs://master:9000
- hdfs-site.xml
-
dfs.replication3
dfs.namenode.name.dir/opt/hadoop/hdfs/namenode
dfs.datanode.data.dir/opt/hadoop/hdfs/datanode
- mapred-site.xml(如文件不存在先 cp mapred-site.xml.template mapred-site.xml)
-
mapreduce.framework.nameyarn
- yarn-site.xml
-
yarn.nodemanager.aux-servicesmapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.classorg.apache.hadoop.mapred.ShuffleHandler
- 目录权限(以 hadoop 用户执行)
- sudo mkdir -p /opt/hadoop/hdfs/{namenode,datanode}
- sudo chown -R hadoop:hadoop /opt/hadoop
三 启动与验证
- 仅在 NameNode 上执行:hdfs namenode -format(首次部署执行一次)
- 启动 HDFS:start-dfs.sh(在 NameNode 执行)
- 启动 YARN(可选,用于 MapReduce/资源调度):start-yarn.sh(在 ResourceManager 执行)
- 基本验证
- 进程检查:jps(应看到 NameNode/DataNode/ResourceManager/NodeManager 等)
- HDFS 命令:hdfs dfs -ls /
- Web UI:NameNode http://master:9000;ResourceManager http://master:8088
- 常用停止:stop-dfs.sh;stop-yarn.sh
四 单机与多机差异要点
- 单机/伪分布式:core-site.xml 可用 localhost;hdfs-site.xml 中 dfs.replication=1
- 多机集群:core-site.xml 使用 master 主机名;hdfs-site.xml 中 dfs.replication 建议设为 3;所有节点保持一致的 /etc/hosts 与 SSH 免密;确保 DataNode 节点目录 dfs.datanode.data.dir 已创建并可写
五 常见问题与排查
- 无法访问 Web UI:检查防火墙/安全组是否放行 9000/8088;确认主机名解析正确;浏览器访问使用 http://:9000
- SSH 免密失败:确认 ~/.ssh/authorized_keys 权限为 600,.ssh 目录为 700;使用 hadoop 用户执行 ssh-copy-id
- 权限错误:Hadoop 目录与数据目录属主应为 hadoop:hadoop;必要时用 sudo chown -R 修正
- 配置错误:核对 core-site.xml/hdfs-site.xml 的 fs.defaultFS、dfs.replication、dfs.namenode.name.dir、dfs.datanode.data.dir 等关键项
- 端口占用:检查是否已有进程占用 9000/8088,必要时释放或调整端口后重启服务