如何从源码运行Apache Hadoop YARN的ResourceManager和NodeManager?启动报错求助
解决YARN ResourceManager启动时队列初始化失败的问题
错误原因
从堆栈追踪的核心错误java.lang.IllegalStateException: Queue configuration missing child queue names for root可以明确:CapacityScheduler的根队列(root)未配置任何子队列,导致ResourceManager初始化队列流程失败。
解决方案
1. 配置CapacityScheduler队列文件
找到capacity-scheduler.xml配置文件(若从源码运行,可在项目src/main/resources目录下创建,或指定自定义配置目录),添加根队列的子队列及基础配置,示例如下:
<!-- 定义root队列下的子队列列表 --> <property> <name>yarn.scheduler.capacity.root.queues</name> <value>default</value> <description>根队列下的子队列,多个队列用逗号分隔</description> </property> <!-- 配置default队列的资源容量 --> <property> <name>yarn.scheduler.capacity.root.default.capacity</name> <value>100</value> <description>default队列占用的资源容量百分比</description> </property> <!-- 配置default队列的最大可用资源容量 --> <property> <name>yarn.scheduler.capacity.root.default.maximum-capacity</name> <value>100</value> <description>default队列允许使用的最大资源容量百分比</description> </property>
2. 确保启动时加载正确配置
- 命令行源码启动时,需指定配置目录参数:
hadoop jar target/hadoop-yarn-server-resourcemanager-*.jar org.apache.hadoop.yarn.server.resourcemanager.ResourceManager -D.hadoop.conf.dir=/path/to/your/config - IDE运行时,在运行配置中添加环境变量
HADOOP_CONF_DIR,值为包含capacity-scheduler.xml的目录路径。
3. 验证配置完整性
启动前检查capacity-scheduler.xml,确保yarn.scheduler.capacity.root.queues属性已正确设置,且子队列的容量参数配置无缺失。
内容的提问来源于stack exchange,提问作者Jayden
相关产品推荐
相关产品推荐

