CentOS 7作为企业级Linux发行版,凭借其稳定性和安全性,成为部署Hadoop集群的常见选择,本文将详细介绍在CentOS 7系统上安装Hadoop伪分布式集群的完整步骤,包括环境准备、Java安装、Hadoop配置、集群启动及测试验证,确保读者能够清晰理解每个环节的操作细节和注意事项。

环境准备与基础配置
在开始安装Hadoop之前,需确保系统满足基本要求并完成必要的初始化配置,创建一个专门用于Hadoop部署的用户账户,避免使用root用户操作,以提升系统安全性,执行以下命令创建用户并设置密码:
useradd hadoop passwd hadoop
随后,为该用户配置sudo权限,编辑/etc/sudoers文件,添加hadoop ALL=(ALL) NOPASSWD: ALL,关闭防火墙和SELinux,避免网络访问限制:
systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
配置主机名与hosts文件,确保集群内节点可以通过主机名互相访问,编辑/etc/hosts文件,添加以下内容(假设节点IP为192.168.1.100):
168.1.100 master
配置SSH免密登录,这是Hadoop节点间通信的基础,执行以下命令生成SSH密钥并复制到本机:
su - hadoop ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys
Java环境安装
Hadoop依赖Java环境,推荐安装OpenJDK 1.8版本,更新系统软件包列表:
sudo yum update -y
然后安装OpenJDK 1.8:
sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y
安装完成后,配置JAVA_HOME环境变量,编辑/etc/profile文件,添加以下内容:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export PATH=$PATH:$JAVA_HOME/bin
执行source /etc/profile使配置生效,并通过java -version验证Java安装是否成功。

Hadoop下载与解压
从Apache官网下载Hadoop稳定版本(如3.3.1),并解压至指定目录,执行以下命令:
wget https://archive.apache.org/dist/hadoop/core/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 sudo chown -R hadoop:hadoop /usr/local/hadoop
配置Hadoop环境变量,编辑/etc/profile文件,添加:
export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
执行source /etc/profile使配置生效,并通过hadoop version验证Hadoop安装。
Hadoop核心配置文件修改
进入Hadoop配置目录$HADOOP_HOME/etc/hadoop,修改以下关键文件:
- core-site.xml:配置Hadoop默认文件系统名称
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/data/tmp</value> </property> </configuration> - hdfs-site.xml:配置HDFS副本数和数据存储目录
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/usr/local/hadoop/data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/usr/local/hadoop/data/datanode</value> </property> </configuration> - mapred-site.xml:配置MapReduce框架为YARN
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> - yarn-site.xml:配置YARN资源管理器相关属性
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> </configuration> - workers:指定从节点主机名(伪分布式配置中为localhost)
localhost
格式化HDFS与启动集群
首次启动前需格式化HDFS文件系统,执行以下命令:
hdfs namenode -format
启动Hadoop集群,包括HDFS和YARN服务:
start-dfs.sh start-yarn.sh
通过jps命令验证进程是否启动成功,在主节点上,应看到NameNode、DataNode、ResourceManager、NodeManager等进程。
测试Hadoop集群功能
创建HDFS目录并上传测试文件:

hdfs dfs -mkdir -p /user/hadoop/input hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /user/hadoop/input
运行MapReduce示例程序验证集群功能:
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /user/hadoop/input /user/hadoop/output
查看结果:
hdfs dfs -cat /user/hadoop/output/*
若输出单词统计结果,则表明集群配置成功。
相关问答FAQs
问题1:启动Hadoop集群时提示“Permission denied”错误如何解决?
解答:该错误通常是由于SSH免密登录配置不当或文件权限问题导致,检查~/.ssh/authorized_keys文件权限是否为600,并确保ssh localhost命令无需密码即可登录,确认Hadoop配置文件中的路径权限是否正确,例如/usr/local/hadoop目录及其子目录的属主应为hadoop用户。
问题2:Hadoop集群启动后无法访问Web界面?
解答:首先检查防火墙状态,确保已关闭或开放相关端口(HDFS默认50070,YARN默认8088),验证core-site.xml中的fs.defaultFS配置是否正确,且节点主机名能被解析,若仍无法访问,检查日志文件(如$HADOOP_HOME/logs/hadoop-root-namenode-master.log)定位具体错误原因,常见问题包括内存不足或配置参数错误。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复