Yarn下的YarnChild启动个数决定参数

本文详细解析了YARN中Mapper和Reducer并发执行个数的决定因素,包括多种配置参数的作用及如何通过这些参数来合理分配资源。

Yarn下的mapper和reducer并发执行个数有什么决定的呢?

由调度的资源决定的,也就是说启动的YarnChild个数多少取决于资源的分配和free的资源量

参数说明:

conf/yarn-site.xml

yarn.nodemanager.resource.memory-mb

NodeManager总的可用物理内存,默认值是8192MB,一般情况下不要修改

yarn.nodemanager.vmem-pmem-ratio

每使用1MB物理内存,最多可用的虚拟内存数默认2.1

yarn.nodemanager.resource.cpu-vcores

参数解释:NodeManager总的可用虚拟CPU个数。默认值:8

conf/mapred-site.xml:

mapreduce.map.memory.mb

每个Map Task需要的内存量默认1024m

mapreduce.map.java.opts

map的最大累计内存如:-Xmx1024M

mapreduce.reduce.memory.mb

每个Reduce Task需要的内存量默认1024m

mapreduce.reduce.java.opts

所有reduce加起来的总和内存大小如:-Xmx1024M  

yarn.scheduler.minimum-allocation-mb

默认值:1024 

yarn.scheduler.maximum-allocation-mb

默认值:8192

 

拆分说明如下:

Container for task

memory:

单位:mb

默认值:1024

首选"mapreduce.map|reduce.memory.mb" 默认值:0

其次

获取-Xmx配置的heapsize

配置项首选 "mapreduce.map|reduce.java.opts"

其次 "mapred.child.java.opts" 默认值:-Xmx200m

xmx浮动

浮动比例:"mapreduce.xmx.overflow.memory.percent" 默认值:0.1

浮动量:"mapreduce.xmx.overflow.memory.mb" 默认值:128

综合:xmx = ceil(xmx * (1 + 0.1) + 128 * 1.0) 即默认200*1.1 + 128 = 348

cpu

单位:vcore

默认值:1

配置项:"mapreduce.map|reduce.cpu.vcores"

 

Container for appmaster

memory

单位:mb

默认值:1536

配置项:"yarn.app.mapreduce.am.resource.mb"

cpu

单位:vcore

默认值:1

配置项:"yarn.app.mapreduce.am.resource.cpu-vcores"

 

调度器控制

memory

单位:mb

申请最小值:"yarn.scheduler.minimum-allocation-mb" 默认值:1024

申请最大值:"yarn.scheduler.maximum-allocation-mb" 默认值:8192

cpu

单位:vcore

申请最小值:"yarn.scheduler.minimum-allocation-vcores" 默认值:1

申请最大值:"yarn.scheduler.maximum-allocation-vcores" 默认值:4

 

### 如何启动YARN并提交MapReduce任务 在Hadoop生态系统中,YARN(Yet Another Resource Negotiator)作为资源管理器,负责管理和分配集群中的计算资源。以下是关于如何启动YARN以及如何提交MapReduce任务的详细说明。 #### 启动YARN启动YARN集群,首先需要确保Hadoop环境已经正确配置,并且所有必要的服务都已启动。以下步骤描述了如何启动YARN: 1. **修改配置文件** 在Hadoop配置目录中,找到`mapred-site.xml`文件,并添加或修改以下属性以指定MapReduce运行在YARN上[^3]: ```xml <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> ``` 2. **启动HDFS和YARN服务** 确保HDFS已经启动后,使用以下命令启动YARN服务: ```bash start-yarn.sh ``` 此命令会启动ResourceManager和NodeManager,它们是YARN的核心组件。 3. **验证YARN是否启动成功** 可以通过以下命令检查YARN的服务状态: ```bash yarn node -list ``` 如果NodeManager正常运行,将列出所有节点的信息。 #### 提交MapReduce任务 一旦YARN启动成功,可以提交MapReduce任务到YARN执行。以下是具体步骤: 1. **准备输入数据** 将需要处理的数据上传到HDFS中。例如: ```bash hdfs dfs -mkdir /input hdfs dfs -put local_file.txt /input ``` 2. **提交任务** 使用`hadoop jar`命令提交MapReduce任务。以下是一个示例,展示如何运行WordCount程序[^5]: ```bash hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount /input /output ``` 其中: - `$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar` 是包含预定义MapReduce示例的JAR包。 - `/input` 是输入数据所在的HDFS路径。 - `/output` 是输出结果存储的HDFS路径。 3. **查看任务执行状态** 提交任务后,可以通过以下方式监控任务执行情况: - 使用Web界面访问YARN ResourceManager的UI,默认地址为`http://<ResourceManager_host>:8088`。 - 或者通过命令行查看任务状态: ```bash yarn application -list ``` 4. **获取输出结果** 任务完成后,可以从HDFS中读取输出结果。例如: ```bash hdfs dfs -cat /output/part-r-00000 ``` #### 示例:使用蒙特卡罗算法计算PI 除了WordCount,还可以运行其他内置的MapReduce示例。例如,使用蒙特卡罗方法计算PI值[^4]: ```bash hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 3 1000 ``` 参数解释: - `pi` 表示运行计算PI值的程序。 - `3` 表示设置3个Map任务。 - `1000` 表示模拟求PI的样本数。 --- ### 注意事项 - 确保Hadoop的环境变量已正确配置,特别是`$HADOOP_HOME`。 - 如果遇到权限问题,可能需要调整HDFS目录的权限或切换到正确的用户。 - 在生产环境中,建议对YARN和HDFS进行详细的性能调优,以提高任务执行效率。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值