news 2026/7/11 20:27:32

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 20:27:24

dsPIC33 C30外设库 vs 寄存器操作:Timer1中断配置的2种方案对比

dsPIC33 Timer1中断配置&#xff1a;寄存器操作与外设库方案深度对比在嵌入式系统开发中&#xff0c;定时器中断是最基础也最核心的功能之一。对于从8位PIC转向16位dsPIC或从ARM平台迁移过来的开发者来说&#xff0c;如何高效配置dsPIC33的定时器中断是一个必须掌握的技能。本文…

作者头像 李华
网站建设 2026/7/11 20:26:49

101.1.智能交通灯-WiFi-基于STM32单片机物联网设计【硬件+APP+云平台】

&#xff08;1&#xff09;硬件端 1. 红绿灯控制&#xff1a;系统通过控制红、黄、绿三个灯的亮灭来指挥交通&#xff0c;确保交通有序。同时&#xff0c;系统需要考虑到不同时间段、不同道路特征等因素&#xff0c;动态调整红绿灯时长。 2. 倒计时显示&#xff1a;系统需要设计…

作者头像 李华
网站建设 2026/7/11 20:25:36

etipc:OpenEuler增强版TIPC集群通信协议完全指南

etipc&#xff1a;OpenEuler增强版TIPC集群通信协议完全指南 【免费下载链接】etipc enhanced tipc 项目地址: https://gitcode.com/openeuler/etipc 前往项目官网免费下载&#xff1a;https://ar.openeuler.org/ar/ etipc是OpenEuler社区推出的增强版TIPC集群通信协议…

作者头像 李华
网站建设 2026/7/11 20:25:23

零基础学编程三年感悟:普通人真的不用追求技术精通

经常在网上看到各种技术鸡汤&#xff1a;“学技术必须学精通”“半桶水技术迟早被淘汰”“深耕底层原理才能走得长远”。刚开始学编程的时候&#xff0c;我对这些话深信不疑&#xff0c;拼命死磕底层、钻研源码、追求技术精通&#xff0c;花费大量时间啃晦涩难懂的底层知识&…

作者头像 李华
网站建设 2026/7/11 20:25:05

C++笔记之std::lock_guard和std::unique_lock在作用域中的自动加解锁

C++笔记之std::lock_guard和std::unique_lock在作用域中的自动加解锁 code review! 文章目录 C++笔记之std::lock_guard和std::unique_lock在作用域中的自动加解锁 核心区别一览 1. `std::lock_guard`:简单、高效 2. `std::unique_lock`:灵活、功能强大 常见高级用法: 总结…

作者头像 李华