单机部署Yarn全攻略:从环境准备到集群管理
2025.09.17 11:04浏览量:7简介:本文详细介绍了单机环境下部署Yarn的完整流程,涵盖环境准备、安装配置、集群管理以及常见问题解决方案,适合开发者和运维人员参考。
一、引言:为何选择单机部署Yarn?
Yarn(Yet Another Resource Negotiator)作为Apache Hadoop生态系统的核心组件,负责集群资源的统一管理与调度。尽管Yarn通常运行在分布式集群环境中,但在开发测试、小型项目或特定场景下,单机部署Yarn仍具有显著优势:
- 低成本验证:无需搭建复杂集群,快速验证Yarn功能与配置
- 开发环境隔离:为开发者提供独立的资源管理环境
- 教学演示:便于展示Yarn核心机制与API使用
- 轻量级应用:处理中等规模数据时,单机性能足够
本文将系统阐述单机部署Yarn的全流程,从环境准备到高级配置,帮助读者高效完成部署并掌握核心管理技能。
二、环境准备:构建部署基础
2.1 硬件要求
单机部署Yarn对硬件配置有一定要求,建议满足以下最低标准:
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 双核2.0GHz | 四核3.0GHz+ |
| 内存 | 8GB | 16GB+ |
| 磁盘 | 50GB可用空间 | 100GB+ SSD |
| 网络 | 100Mbps以太网 | 千兆以太网 |
关键考量:Yarn的NodeManager会占用较多内存,建议为JVM分配4-8GB堆内存,因此总内存不宜低于8GB。
2.2 软件依赖
部署前需安装以下基础软件:
Java JDK:Yarn依赖Java运行环境,建议安装JDK 8或11(LTS版本)
# Ubuntu示例sudo apt updatesudo apt install openjdk-11-jdkjava -version # 验证安装
Hadoop共同依赖:Yarn与HDFS、MapReduce共享部分库,需安装Hadoop公共包
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gztar -xzvf hadoop-3.3.4.tar.gz -C /opt/ln -s /opt/hadoop-3.3.4 /opt/hadoop
SSH服务:Yarn节点间通信依赖SSH,需确保本地SSH服务运行
sudo apt install openssh-serversudo systemctl start sshd
三、安装与配置:构建Yarn运行环境
3.1 Yarn安装
推荐从Apache官方下载稳定版Yarn包(通常包含在Hadoop发行版中):
# 下载Hadoop(包含Yarn)wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gztar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/cd /usr/local/ln -s hadoop-3.3.4 hadoop
3.2 核心配置文件
修改以下关键配置文件(路径:/usr/local/hadoop/etc/hadoop/):
3.2.1 yarn-site.xml
<configuration><!-- 启用ResourceManager HA(单机环境可忽略) --><property><name>yarn.resourcemanager.ha.enabled</name><value>false</value></property><!-- NodeManager内存配置 --><property><name>yarn.nodemanager.resource.memory-mb</name><value>8192</value> <!-- 根据实际内存调整 --></property><!-- 容器虚拟内存比例 --><property><name>yarn.nodemanager.vmem-pmem-ratio</name><value>2.1</value></property><!-- 日志聚合配置 --><property><name>yarn.log-aggregation-enable</name><value>true</value></property></configuration>
3.2.2 mapred-site.xml(如需运行MapReduce)
<configuration><!-- 指定Yarn为MapReduce运行环境 --><property><name>mapreduce.framework.name</name><value>yarn</value></property><!-- 历史服务器配置 --><property><name>mapreduce.jobhistory.address</name><value>0.0.0.0:10020</value></property></configuration>
3.2.3 环境变量设置
编辑/etc/profile或~/.bashrc:
export HADOOP_HOME=/usr/local/hadoopexport PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinexport YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
生效配置:
source /etc/profile
四、启动与管理:运行Yarn集群
4.1 启动流程
格式化HDFS(如需使用):
hdfs namenode -format
启动HDFS服务:
start-dfs.sh
启动Yarn服务:
start-yarn.sh
验证服务状态:
jps # 应看到ResourceManager、NodeManager进程yarn node -list # 查看节点状态
4.2 资源管理实践
4.2.1 动态资源调整
通过修改yarn-site.xml实时调整资源分配:
<property><name>yarn.scheduler.minimum-allocation-mb</name><value>1024</value> <!-- 最小容器内存 --></property><property><name>yarn.scheduler.maximum-allocation-mb</name><value>8192</value> <!-- 最大容器内存 --></property>
4.2.2 队列管理
配置capacity-scheduler.xml实现多队列资源隔离:
<configuration><property><name>yarn.scheduler.capacity.root.queues</name><value>default,dev</value></property><property><name>yarn.scheduler.capacity.root.default.capacity</name><value>70</value></property><property><name>yarn.scheduler.capacity.root.dev.capacity</name><value>30</value></property></configuration>
五、高级功能与优化
5.1 日志聚合与分析
启用日志聚合后,可通过以下命令查看历史任务日志:
yarn logs -applicationId <app_id> > app_logs.txt
5.2 性能调优建议
内存优化:
- 调整
yarn.nodemanager.resource.memory-mb为物理内存的70-80% - 设置
yarn.app.mapreduce.am.resource.mb为合理值(通常512-2048MB)
- 调整
并行度控制:
<property><name>mapreduce.job.maps</name><value>4</value> <!-- 根据CPU核心数调整 --></property>
容器复用:
<property><name>yarn.nodemanager.container-executor.class</name><value>org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor</value></property>
六、常见问题解决方案
6.1 内存不足错误
现象:Container is running beyond physical memory limits
解决方案:
- 增加
yarn.nodemanager.resource.memory-mb值 - 调整
yarn.nodemanager.vmem-pmem-ratio(默认2.1) - 检查是否有内存泄漏的MapReduce作业
6.2 节点无法注册
现象:NodeManager启动但未出现在yarn node -list中
排查步骤:
- 检查
yarn.resourcemanager.address配置是否正确 - 查看NodeManager日志:
cat $HADOOP_HOME/logs/yarn-*-nodemanager-*.log
- 验证防火墙设置:
sudo ufw status # Ubuntusudo iptables -L # CentOS
6.3 任务执行缓慢
优化建议:
- 启用数据本地性:
<property><name>yarn.scheduler.include-port-in-host</name><value>false</value></property>
- 调整MapReduce任务参数:
<property><name>mapreduce.map.memory.mb</name><value>1024</value></property><property><name>mapreduce.reduce.memory.mb</name><value>2048</value></property>
七、总结与展望
单机部署Yarn为开发者提供了低成本、高灵活性的资源管理解决方案。通过本文的详细指导,读者已掌握:
- 完整的单机部署流程与环境配置
- Yarn核心参数的调优方法
- 常见问题的诊断与解决技巧
未来发展方向包括:
- 结合Docker实现更轻量级的部署
- 集成Kubernetes实现混合资源管理
- 探索Yarn在边缘计算场景的应用

发表评论
登录后可评论,请前往 登录 或 注册