怎样正确配置Ubuntu下的HDFS
小樊
44
2025-12-26 15:20:10
Ubuntu 下 HDFS 正确配置步骤
一 环境准备
- 更新系统并安装基础工具与 Java 8(Hadoop 3.x 常用版本):
- 命令:sudo apt update && sudo apt install -y build-essential openssh-server openjdk-8-jdk
- 验证:java -version 应返回 1.8.x
- 建议创建专用用户(如 hdfs)或在当前用户下完成后续操作,避免权限混乱。
二 安装与环境变量
- 下载并解压 Hadoop(示例版本 3.3.4,可按需调整):
- 命令:wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
- 解压:tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
- 配置环境变量(~/.bashrc 或 /etc/profile):
- 内容:
- export HADOOP_HOME=/usr/local/hadoop-3.3.4
- export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 生效:source ~/.bashrc(或 source /etc/profile)
- 在 hadoop-env.sh 中显式设置 JAVA_HOME(路径以本机为准,可用 update-alternatives --config java 查询):
- 示例:export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
- 说明:部分发行版包可能已自带 JAVA_HOME,但显式设置更稳妥
三 配置 HDFS 核心文件
- 配置 core-site.xml(指定默认文件系统与 I/O 缓冲):
- 示例:
-
- fs.defaultFShdfs://localhost:9000
- io.file.buffer.size131072
-
- hadoop.tmp.dir/usr/local/hadoop-3.3.4/tmp
-
- 配置 hdfs-site.xml(单机/伪分布式常用设置):
- 示例:
-
- dfs.replication1
- dfs.namenode.name.dir/usr/local/hadoop-3.3.4/data/namenode
- dfs.datanode.data.dir/usr/local/hadoop-3.3.4/data/datanode
- dfs.datanode.data.dir.perm700
- dfs.blocksize268435456
- dfs.namenode.handler.count100
-
- 创建数据与临时目录并修正属主(如使用 hdfs 用户):
- 命令:
- sudo mkdir -p /usr/local/hadoop-3.3.4/data/{namenode,datanode}
- sudo mkdir -p /usr/local/hadoop-3.3.4/tmp
- sudo chown -R hdfs:hdfs /usr/local/hadoop-3.3.4/data /usr/local/hadoop-3.3.4/tmp
- 配置 workers(单机保留 localhost;集群填写各节点主机名或 IP):
- 文件路径:$HADOOP_HOME/etc/hadoop/workers
- 内容示例:localhost
四 启动与验证
- 首次启动前格式化 NameNode(仅一次):
- 启动 HDFS(如需 YARN 可同时启动):
- 命令:start-dfs.sh(start-yarn.sh)
- 验证进程与 Web UI:
- 进程:jps 应看到 NameNode、DataNode、SecondaryNameNode(若启动 YARN 还有 ResourceManager、NodeManager)
- Web UI:
- HDFS NameNode:http://localhost:50070(Hadoop 3.x 新版为 http://localhost:9870)
- YARN ResourceManager:http://localhost:8088
- 常用操作与停止:
- 创建目录:hdfs dfs -mkdir -p /user/$USER
- 上传文件:hdfs dfs -put localfile /user/$USER/
- 查看文件:hdfs dfs -ls /user/$USER
- 停止:stop-dfs.sh(stop-yarn.sh)
五 常见问题与进阶
- SSH 免密登录(本机或集群节点间):
- 生成密钥:ssh-keygen -t rsa -P ‘’
- 本机自测:ssh-copy-id localhost
- 集群分发:ssh-copy-id user@slave_node_ip
- 防火墙放行端口(如使用 ufw):
- 命令:sudo ufw allow 9000,9870,8088
- 端口与版本差异:
- Hadoop 2.x 常用 50070 作为 NameNode Web 端口;Hadoop 3.x 使用 9870。若访问失败,请先确认实际版本与端口。
- 生产与安全:
- 多机部署需统一 /etc/hosts 或 DNS、时间同步(NTP),并按需配置 Kerberos 等安全机制。