1. 从零开始搭建Hadoop环境
第一次接触Hadoop时,我被它庞大的生态体系吓到了。但实际搭建起来,发现并没有想象中那么复杂。这里我分享下在头哥实践平台上搭建Hadoop环境的详细步骤,帮你避开我踩过的那些坑。
首先需要准备一个干净的Linux环境,推荐使用Ubuntu 18.04 LTS版本。这个版本稳定性好,社区支持完善。安装完系统后,第一步是配置Java环境。Hadoop是用Java开发的,所以JDK必不可少。我建议安装OpenJDK 8,这是目前最稳定的选择:
bash复制sudo apt update
sudo apt install openjdk-8-jdk -y
java -version # 验证安装
接下来下载Hadoop二进制包。我强烈建议使用3.2.3版本,这是目前最稳定的发布版。下载后解压到/usr/local目录:
bash复制wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.3/hadoop-3.2.3.tar.gz
sudo tar -xzvf hadoop-3.2.3.tar.gz -C /usr/local
sudo mv /usr/local/hadoop-3.2.3 /usr/local/hadoop
配置环境变量是容易出错的地方。编辑~/.bashrc文件,添加以下内容:
bash复制export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
保存后执行source ~/.bashrc使配置生效。接下来修改Hadoop的核心配置文件,这些文件都位于$HADOOP_HOME/etc/hadoop目录下:
- core-site.xml - 配置HDFS地址和临时目录
- hdfs-site.xml - 配置副本数和数据目录
- mapred-site.xml - 配置MapReduce框架
- yarn-site.xml - 配置YARN资源管理
配置完成后,执行格式化命令初始化HDFS:
bash复制hdfs namenode -format
最后启动Hadoop集群:
bash复制start-dfs.sh
start-yarn.sh
验证集群是否正常运行:
bash复制jps # 应该看到NameNode、DataNode等进程
hdfs dfsadmin -report # 查看集群状态
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 学生成绩分析项目实战
现在我们来实战一个完整的学生成绩分析项目。这个项目会用到MapReduce的核心思想,通过三个关键步骤完成:数据准备、Map阶段处理和Reduce阶段汇总。
首先准备测试数据。我们创建一个students.txt文件,包含学生姓名和成绩:
code复制张三 85
李四 92
王五 78
张三 90
李四 88
赵六 95
将数据上传到HDFS:
bash复制hadoop fs -mkdir -p /user/test/input
hadoop fs -put students.txt /user/test/input
接下来编写MapReduce程序。核心思路是:Mapper读取每行数据,输出<学生姓名, 成绩>键值对;Reducer找出每个学生的最高成绩。完整代码如下:
java复制public class MaxScore {
public static class TokenizerMapper
extends Mapper<LongWritable, Text, Text, IntWritable> {
private Text name
