在CentOS系统上配置Hadoop单机模式,是入门大数据处理的理想起点,单机模式允许用户在本地环境中运行Hadoop,无需复杂网络设置,适合学习和测试,作为网站站长,我经常需要处理数据密集型任务,Hadoop的单机部署帮助我快速验证代码和概念,本文将一步步指导您完成在CentOS 7或8上的安装过程,确保内容基于实际经验,信息准确可靠。
准备工作:系统与环境检查
在开始前,确保您的CentOS系统已更新到最新版本,打开终端,执行以下命令来更新系统包:

sudo yum update -y
Hadoop依赖Java环境,因此需要安装JDK,推荐使用OpenJDK 8或11,它们与Hadoop兼容性良好,通过yum安装:
sudo yum install java-1.8.0-openjdk-devel -y
安装完成后,验证Java版本:
java -version
如果输出显示版本信息,说明安装成功,创建一个专用用户来运行Hadoop,这能提高安全性,添加用户hadoop:
sudo adduser hadoop sudo passwd hadoop # 设置密码
将hadoop用户添加到sudo组,以便执行权限操作:
sudo usermod -aG wheel hadoop
切换到hadoop用户,继续后续步骤:
su - hadoop
这些准备步骤看似基础,但能避免许多常见错误,比如权限问题或依赖缺失。

下载与安装Hadoop
访问Hadoop官网下载最新稳定版,例如Hadoop 3.3.4,使用wget命令直接下载到用户主目录:
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
解压文件到/opt目录,这便于管理:
sudo tar -xzf hadoop-3.3.4.tar.gz -C /opt/ sudo chown -R hadoop:hadoop /opt/hadoop-3.3.4
为方便使用,创建符号链接:
sudo ln -s /opt/hadoop-3.3.4 /opt/hadoop
设置环境变量,编辑hadoop用户的.bashrc文件:
nano ~/.bashrc
在文件末尾添加以下行:
export HADOOP_HOME=/opt/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk # 根据实际路径调整
保存后,加载配置:

source ~/.bashrc
验证Hadoop安装:
hadoop version
如果显示版本号,说明安装正确,这一步的关键是确保路径无误,否则后续配置会失败。
配置Hadoop单机模式
Hadoop的单机模式无需修改分布式设置,但需调整核心文件,进入Hadoop配置目录:
cd $HADOOP_HOME/etc/hadoop
编辑core-site.xml,定义Hadoop的临时目录,使用nano或vim打开文件:
nano core-site.xml
在
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop-tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>file:///</value>
</property> 配置hdfs-site.xml,单机模式下,HDFS不启用,但需设置副本数为1以避免警告:
nano hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property> 处理mapred-site.xml,如果文件不存在,复制模板:
cp mapred-site.xml.template mapred-site.xml nano mapred-site.xml
添加:
<property>
<name>mapreduce.framework.name</name>
<value>local</value>
</property> 设置yarn-site.xml,单机模式中,YARN资源管理器可选,但建议禁用以简化:
nano yarn-site.xml
输入:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property> 配置完成后,格式化Hadoop的临时目录(虽单机模式不需HDFS,但这一步可清除残留):
hadoop namenode -format
注意,单机模式下,此命令非必须,但能帮助检查配置。
测试与验证
现在运行一个简单MapReduce任务来验证安装,Hadoop自带示例程序,例如wordcount,创建输入文件:
echo "Hello Hadoop Single Node" > input.txt
运行wordcount作业:
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount input.txt output
如果成功,会生成output目录,包含结果,查看输出:
cat output/part-r-00000
您应该看到单词统计,这个过程演示了Hadoop的基本功能,无需启动守护进程,单机模式的优点在于快速反馈:如果作业失败,日志直接显示在终端,便于调试。
在测试中,可能遇到内存不足问题,CentOS默认设置可能限制资源,可调整JVM参数,例如在hadoop-env.sh中增加HEAP大小:
nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh
找到export HADOOP_HEAPSIZE行,修改为:
export HADOOP_HEAPSIZE=1024
这能提升稳定性,尤其对内存有限的虚拟机。
个人观点
通过单机模式,我深刻体会到Hadoop的模块化设计如何降低学习门槛,这种部署方式不仅节省资源,还让用户专注于算法和数据处理逻辑,对于站长而言,它像是一个沙盒,能安全地实验数据管道,未来扩展到集群时,这些基础经验会变得无比珍贵,大数据技术日新月异,但扎实的单机实践永远是基石。
