Ubuntu HDFS应用如何部署
小樊
41
2025-12-06 23:00:56
Ubuntu 上部署 HDFS 的完整步骤
一 环境准备与规划
准备至少 1 台 Ubuntu 20.04/22.04 主机(单机用于学习,多台用于生产/集群)。
安装基础工具与 Java (Hadoop 3.x 建议使用 OpenJDK 8 或 11 ):
sudo apt update && sudo apt install -y openssh-server vim
sudo apt install -y openjdk-11-jdk # 或 openjdk-8-jdk
java -version
创建专用用户(推荐):
sudo adduser hadoop && sudo usermod -aG sudo hadoop
规划主机名与网络:
单机:使用 localhost
集群:规划 NameNode、DataNode 主机名与 静态 IP ,并在所有节点配置 /etc/hosts 解析
时间同步(集群强烈建议):
sudo apt install -y ntpdate && sudo ntpdate cn.pool.ntp.org
防火墙与端口:确保节点间可互通,开放 HDFS 相关端口(如 9000、50070 等) 。
二 安装与配置 Hadoop 与 HDFS
下载并解压 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 -s /usr/local/hadoop-3.3.6 /usr/local/hadoop
配置环境变量(所有节点):
echo ‘export HADOOP_HOME=/usr/local/hadoop’ | sudo tee -a /etc/profile
echo ‘export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin’ | sudo tee -a /etc/profile
echo ‘export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64’ | sudo tee -a /etc/profile # 路径以本机为准
source /etc/profile
核心配置(路径:$HADOOP_HOME/etc/hadoop)
core-site.xml(单机示例):
fs.defaultFS hdfs://localhost:9000
hadoop.tmp.dir /usr/local/hadoop/tmp
hdfs-site.xml(单机示例):
dfs.replication 1
dfs.namenode.name.dir /usr/local/hadoop/hdfs/namenode
dfs.datanode.data.dir /usr/local/hadoop/hdfs/datanode
集群请将 fs.defaultFS 改为 hdfs://namenode:9000 ,并相应调整目录与副本数(如 dfs.replication=3 )。
三 启动与验证
创建数据目录并赋权:
sudo mkdir -p /usr/local/hadoop/hdfs/{namenode,datanode}
sudo chown -R hadoop:hadoop /usr/local/hadoop/hdfs
首次格式化 NameNode(仅首次):
sudo -u hadoop hdfs namenode -format
启动 HDFS:
sudo -u hadoop start-dfs.sh
基础验证:
hdfs dfs -ls /
hdfs dfsadmin -report
jps # 应看到 NameNode/DataNode 进程
Web 界面:访问 http://:50070 查看 HDFS 状态。
四 集群扩展与运维要点
SSH 免密登录(NameNode 到所有 DataNode):
sudo -u hadoop ssh-keygen -t rsa -P ‘’
sudo -u hadoop ssh-copy-id hadoop@
配置文件分发:保持 core-site.xml、hdfs-site.xml 等在所有节点一致;新增 DataNode 后同步配置并启动:
hdfs --daemon start datanode
常用运维:
查看集群与存储:hdfs dfsadmin -report
查看日志:tail -f $HADOOP_HOME/logs/hadoop--namenode- .log
端口与安全:开放 9000/50070 等端口;生产可启用 Kerberos 认证。
五 应用接入与常见问题
应用接入方式:
命令行:hdfs dfs -put /local/file /user/hadoop/
Java API:使用 Hadoop Common 与 HDFS Client 依赖,通过 hdfs://namenode:9000 访问
常见问题速查:
无法访问 50070 :检查防火墙、NameNode 是否启动、主机名/IP 是否正确
DataNode 未注册:检查 dfs.datanode.data.dir 权限、磁盘空间、NameNode/DataNode 配置一致性
SSH 免密失败:确认 ~/.ssh/authorized_keys 已分发、权限为 600/700
格式化报错:确保 hadoop.tmp.dir 目录可写,必要时清理后重新格式化(会清空元数据,谨慎操作)