Hadoop 2.7.1 伪分布式部署:单机模拟集群的5个关键配置与WordCount测试

Hadoop 2.7.1 伪分布式部署实战:单机模拟集群的完整指南

1. 伪分布式模式的核心价值

伪分布式模式是Hadoop学习者的黄金起点。与完全分布式相比,它在单台机器上模拟了多节点集群的所有关键组件,包括:

  • NameNode:HDFS的元数据管理者
  • DataNode:实际存储数据块的节点
  • ResourceManager:YARN资源调度核心
  • NodeManager:单个节点的资源执行者

这种模式的最大优势在于:

  1. 资源友好:仅需一台配置适中的Linux服务器(建议4核CPU/8GB内存)
  2. 学习曲线平滑:避免了多机器网络配置的复杂性
  3. 完整功能验证:可测试HDFS读写、YARN任务调度等核心机制

提示:生产环境请使用完全分布式部署,伪分布式仅适用于开发测试

2. 环境准备关键步骤

2.1 系统基础配置

# 设置主机名(需root权限) hostnamectl set-hostname hadoop-pseudo exec bash # 检查SSH服务状态 systemctl status sshd # 关闭防火墙(学习环境建议操作) systemctl stop firewalld systemctl disable firewalld # 创建专用用户 useradd hadoop echo "hadoop123" | passwd --stdin hadoop

2.2 JDK 1.8安装

# 解压JDK到指定目录 tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local/ # 设置环境变量(/etc/profile末尾追加) export JAVA_HOME=/usr/local/jdk1.8.0_221 export PATH=$PATH:$JAVA_HOME/bin # 立即生效并验证 source /etc/profile java -version

3. Hadoop核心配置详解

3.1 关键配置文件修改

core-site.xml- 全局基础配置:

<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/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>/opt/hadoop/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/hadoop/dfs/data</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>localhost</value> </property> </configuration>

3.2 目录权限设置

# 创建必要目录 mkdir -p /opt/hadoop/{tmp,dfs/{name,data}} # 权限变更 chown -R hadoop:hadoop /opt/hadoop chmod -R 755 /opt/hadoop

4. 集群启动与验证

4.1 初始化HDFS

# 切换hadoop用户 su - hadoop # 格式化NameNode(首次执行) hdfs namenode -format # 启动HDFS服务 start-dfs.sh

4.2 启动YARN服务

start-yarn.sh # 验证进程 jps

预期输出应包含:

  • NameNode
  • DataNode
  • ResourceManager
  • NodeManager
  • SecondaryNameNode

4.3 Web UI访问

服务访问地址默认端口
HDFS状态http://localhost:5007050070
YARN管理http://localhost:80888088

5. WordCount实战测试

5.1 准备测试数据

# 创建本地输入文件 echo -e "Hello Hadoop\nHello World\nHello Pseudodistributed" > input.txt # 上传到HDFS hdfs dfs -mkdir /input hdfs dfs -put input.txt /input

5.2 执行MapReduce作业

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar \ wordcount /input /output

5.3 查看结果

# 查看输出目录 hdfs dfs -ls /output # 显示统计结果 hdfs dfs -cat /output/part-r-00000

预期输出示例:

Hadoop 1 Hello 3 Pseudodistributed 1 World 1

6. 常见问题排查指南

6.1 端口冲突处理

若遇到端口占用问题,可通过以下命令检查:

netstat -tulnp | grep <端口号>

6.2 关键日志位置

组件日志路径
NameNode$HADOOP_HOME/logs/hadoop--namenode-.log
DataNode$HADOOP_HOME/logs/hadoop--datanode-.log
YARN$HADOOP_HOME/logs/yarn--resourcemanager-.log

6.3 安全停止集群

stop-yarn.sh stop-dfs.sh