centos hdfs设置方法
小樊
37
2025-12-29 13:56:45
CentOS 上 HDFS 设置方法
一 环境准备
- 操作系统建议使用 CentOS 7/8,确保节点间网络互通(可解析主机名或配置 /etc/hosts),并准备一个用于部署的普通用户(如 hadoop)。
- 安装 Java 8(Hadoop 3.x 常用版本):
sudo yum install -y java-1.8.0-openjdk-devel
java -version
- 安装并启用 SSH 服务,配置 SSH 免密登录(至少 NameNode 能免密登录各 DataNode):
sudo yum install -y openssh-server
sudo systemctl start sshd && sudo systemctl enable sshd
ssh-keygen -t rsa
ssh-copy-id hadoop@<目标节点IP或主机名>
- 建议做 NTP 时间同步,避免分布式环境时钟漂移导致异常。
- 防火墙与安全策略:测试环境可临时关闭防火墙或放行端口;生产环境按需放行端口(如 9000、50070、8088 等)。
二 安装与环境变量
- 下载并解压 Hadoop 3.3.1(亦可选择其他稳定版本):
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
sudo tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local
sudo mv /usr/local/hadoop-3.3.1 /usr/local/hadoop
- 配置环境变量(推荐写入 /etc/profile.d/hadoop.sh):
sudo tee /etc/profile.d/hadoop.sh <<‘EOF’
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
EOF
source /etc/profile.d/hadoop.sh
hadoop version
- 在 $HADOOP_HOME/etc/hadoop/hadoop-env.sh 中显式设置 JAVA_HOME(与上一致)。
三 配置 HDFS 核心文件
- 编辑 core-site.xml(指定默认文件系统与临时目录):
fs.defaultFS
hdfs://namenode:9000
hadoop.tmp.dir
/usr/local/hadoop/tmp
- 编辑 hdfs-site.xml(副本数与本地数据目录,目录需提前创建并赋权给部署用户):
dfs.replication
3
dfs.namenode.name.dir
/usr/local/hadoop/data/namenode
dfs.datanode.data.dir
/usr/local/hadoop/data/datanode
- 如需使用 YARN(可选,便于后续 MapReduce/Spark 提交作业):
- mapred-site.xml:
mapreduce.framework.name
yarn
- yarn-site.xml:
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
yarn.resourcemanager.hostname
namenode
- 目录准备与权限(以 hadoop 用户为例):
sudo mkdir -p /usr/local/hadoop/{data/namenode,data/datanode,tmp}
sudo chown -R hadoop:hadoop /usr/local/hadoop
四 启动与验证
- 在 NameNode 上格式化文件系统(仅首次执行):
hdfs namenode -format
- 启动 HDFS:
start-dfs.sh
如需 YARN:
start-yarn.sh
- 常用验证:
- 进程检查:
jps
应看到 NameNode/DataNode(以及 ResourceManager/NodeManager,若启用 YARN)。
- 集群报告:
hdfs dfsadmin -report
- Web 界面:
- NameNode:http://<namenode_ip>:50070
- ResourceManager:http://<namenode_ip>:8088
- 基本操作示例:
hdfs dfs -mkdir -p /user/hadoop
hdfs dfs -put $HADOOP_HOME/README.txt /user/hadoop/
hdfs dfs -ls /user/hadoop
五 常见问题与优化
- 防火墙与端口:测试环境可临时关闭防火墙;生产环境放行 HDFS RPC 9000、NameNode Web 50070、YARN Web 8088 等端口,或按最小暴露原则配置。
- SSH 免密:确保 NameNode → 所有 DataNode 可免密登录,避免启动脚本卡住。
- 时间与主机名:启用 NTP 同步,确保 /etc/hosts 或 DNS 正确解析各节点主机名。
- 目录与权限:确保 dfs.namenode.name.dir/dfs.datanode.data.dir 所在目录存在且属主为部署用户,避免因权限导致启动失败。
- 资源与副本:单机或测试环境可将 dfs.replication 调为 1;生产环境根据节点数设置(如 3)。