CentOS Hadoop配置步骤是什么
小樊
42
2025-11-20 05:46:20
CentOS 上配置 Hadoop 的标准步骤
一 环境准备
操作系统建议:CentOS 7/8 ,以 root 或具备 sudo 权限的用户操作。
安装 Java(Hadoop 3.x 建议使用 JDK 8 或 JDK 11 ):
安装 OpenJDK 8:sudo yum install -y java-1.8.0-openjdk-devel
验证:java -version
创建专用用户(可选但推荐):
sudo groupadd hadoop && sudo useradd -G hadoop hduser && sudo passwd hduser
配置主机名与 hosts(集群时必需):
hostnamectl set-hostname hadoop-master
编辑 /etc/hosts:192.168.1.10 hadoop-master;192.168.1.11 hadoop-slave1;192.168.1.12 hadoop-slave2
关闭或放行防火墙(测试环境可直接关闭,生产按端口放行):
关闭:sudo systemctl stop firewalld && sudo systemctl disable firewalld
或放行端口:sudo firewall-cmd --permanent --add-port=9000,50070,50075,8088 /tcp && sudo firewall-cmd --reload
配置 SSH 免密登录(本机与集群节点):
ssh-keygen -t rsa -P ‘’
ssh-copy-id localhost(集群时对每个节点执行 ssh-copy-id hadoop-slaveX)
验证:ssh localhost 无需密码
二 安装与目录规划
下载并解压 Hadoop(示例以 3.3.4 为例,可按需替换为 3.3.x/3.4.x 稳定版):
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4 /hadoop-3.3.4.tar.gz
sudo tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local
sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoop
目录规划(示例):
安装目录:/usr/local/hadoop
数据目录:/usr/local/hadoop/data/{namenode,datanode}(HDFS),/usr/local/hadoop/tmp(临时)
日志目录:$HADOOP_HOME/logs(自动生成)
三 环境变量与核心配置
环境变量(推荐写入 /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 HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
EOF
使生效:source /etc/profile.d/hadoop.sh
验证:hadoop version
配置 hadoop-env.sh:
echo “export JAVA_HOME=$JAVA_HOME” | sudo tee -a $HADOOP_HOME/etc/hadoop/hadoop-env.sh
配置 core-site.xml(指定默认文件系统与临时目录):
tee $HADOOP_HOME/etc/hadoop/core-site.xml <<‘EOF’
fs.defaultFS
hdfs://hadoop-master:9000
hadoop.tmp.dir
/usr/local/hadoop/tmp
EOF
配置 hdfs-site.xml(单机伪分布式副本设为 1,指定 NameNode/DataNode 数据目录):
mkdir -p /usr/local/hadoop/data/{namenode,datanode}
tee $HADOOP_HOME/etc/hadoop/hdfs-site.xml <<‘EOF’
dfs.replication
1
dfs.namenode.name.dir
file:///usr/local/hadoop/data/namenode
dfs.datanode.data.dir
file:///usr/local/hadoop/data/datanode
EOF
配置 mapred-site.xml(使用 YARN 作为执行框架):
若不存在则复制模板:cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
tee $HADOOP_HOME/etc/hadoop/mapred-site.xml <<‘EOF’
mapreduce.framework.name
yarn
EOF
配置 yarn-site.xml(启用 Shuffle 服务,指定 ResourceManager 主机):
tee $HADOOP_HOME/etc/hadoop/yarn-site.xml <<‘EOF’
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop-master
EOF
四 启动与验证
首次启动前格式化 NameNode(仅首次):
启动服务:
启动 HDFS:start-dfs.sh
启动 YARN:start-yarn.sh
进程与端口验证:
jps 应看到:NameNode、DataNode、ResourceManager、NodeManager (单机伪分布式均在同一台)
HDFS Web:http://<服务器IP>:50070
YARN Web:http://<服务器IP>:8088
基本功能测试:
hdfs dfs -mkdir -p /user/hduser
hdfs dfs -ls /
运行示例:hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4 .jar pi 2 5
五 常见问题与排查
SSH 免密失败:检查 /root/.ssh/authorized_keys 权限为 600 ,目录为 700 ;必要时用 ssh-copy-id 重新分发公钥。
端口不通:确认 firewalld/云安全组已放行 9000/50070/50075/8088 ;本机测试可用 curl 或浏览器访问对应 Web。
DataNode 未启动或重复启动:清理数据目录(/usr/local/hadoop/data/datanode),重新 hdfs namenode -format 后再启动。
Java 路径错误:hadoop-env.sh 中的 JAVA_HOME 需与实际安装路径一致(可用 alternatives --config java 查看)。
权限问题:若使用非 root 用户,确保 Hadoop 安装与数据目录属主一致(如 chown -R hduser:hadoop /usr/local/hadoop)