Yarn【label-based scheduling】实战总结(二)

洋哥实践大作。

1.1 Label-based scheduling实战问题汇总

1.1.1 ClassNotFoundException

问题现象,执行yarnrmadmin –refreshQueues命令时报以下错误:

java.lang.ClassNotFoundException:Class org.apache.hadoop.yarn.server.resourcemanager.scheduler.apacity.sharingpolicy.ConfigurablePartitionsExtentionPolicynot found

报该类问题一般是因为需要的类不存在或者类路径配置错误,经定位是因为类路径弄出了:

org.apache.hadoop.yarn.server.resourcemanager.scheduler.apacity.sharingpolicy.ConfigurablePartitionsExtentionPolicy

修改为:

org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.sharingpolicy.ConfigurablePartitionsExtentionPolicy

1.1.2 IllegalArgumentException:Illegal capacity

问题详细描述:

java.lang.IllegalArgumentException:Illegal capacity of 0.0 for children of queue root for label=part_B

是因为配置文件capacity-scheduler.xml缺少以下配置项:

<property>
 <name>yarn.scheduler.capacity.root.part_B.accessible-node-labels.part_B.capacity</name>
 <value>100</value>
</property>

1.1.3 删除label partition报错

先查看一下Yarn集群的label partition信息:

[root@slave2 hadoop]# yarn cluster--list-node-labels
16/02/25 12:09:21 INFO client.RMProxy:Connecting to ResourceManager at slave2/169.10.35.57:8032
Node Labels:<part_B:exclusivity=true>
[root@slave2 hadoop]#

然后通过yarn rmadmin -removeFromClusterNodeLabelspart_B 命令将label partition(part_B)删除,删除时报以下异常:

java.io.IOException:Cannot remove label=part_B, because queue=part_B is using this label. Pleaseremove label on queue before remove the label

异常提示需要先删除队列与labelpartition的对应关系,之后才能删除labelpartition。

解决方案如下:

修改配置文件capacity-scheduler.xml,将该文件中的以下配置项:

<property>
<name>yarn.scheduler.capacity.root.part_B.accessible-node-labels</name>
<value>part_B</value>
</property>

此时如果把一个Mapreduce程序提交到队列part_B运行,则会直接卡死,如下所示:

出现以上现象的原因是在capacity-scheduler.xml文件中缺少以下配置:

<property>
   <name>yarn.scheduler.capacity.root.accessible-node-labels.part_B.capacity</name>
   <value>100</value>
</property>

1.1.5 refreshQueues Exception

执行yarn rmadmin–refreshQueues命令时报以下错误:

java.io.IOException:part_B cannot be found during refresh!

导致报这个错的原因是:我将目前已经配置好了队列的capacity-scheduler.xml配置文件替换成hadoop原始默认的capacity-scheduler.xml配置文件,并执行yarn rmadmin –refreshQueues命令;之前一直不清楚为什么会报这个错误,无意间在Yarn的官网看到以下描述:

即在Yarn中,队列不能被删除。

相关阅读:

Yarn【label-based scheduling】实战总结(一)

原文发布于微信公众号 - 大数据和云计算技术(jiezhu2007)

原文发表时间:2016-07-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏信安之路

路由器漏洞 EXP 开发实践

本文主要以 CVE-2013-0230 漏洞为例,讲解路由器上缓冲区漏洞的 exp 编写。

1110
来自专栏散尽浮华

php安全配置记录和常见错误梳理

通常部署完php环境后会进行一些安全设置,除了熟悉各种php漏洞外,还可以通过配置php.ini来加固PHP的运行环境,PHP官方也曾经多次修改php.ini的...

3287
来自专栏大魏分享(微信公众号:david-share)

Look,容器中应用的构建方法!

S2I增量构建重用以前构建的image中的工件 要创建增量构建,请修改BuildConfig策略定义:

643
来自专栏SpringBoot

第七节,Springboot日志配置SLF4J

trace:跟踪,级别最低的日志 debug:调试,用来查看调试内容 info:信息,一般记录一些方法执行等 warn:警告,可能发生错误的代码 err...

702
来自专栏Pythonista

nginx+uWSGI+django+virtualenv+supervisor发布web服务器

大家都学过了django,用django写了各种功能,写了bbs项目,写了路飞学城。

1004
来自专栏漏斗社区

CTF内存取证入坑指南!稳!

最近,斗哥在刷CTF题目。突然刷到了内存取证类,了解到了一款牛逼的工具——Volatility,在kali linux也默认安装好了这个工具,正好可以好好学习一...

4277
来自专栏张善友的专栏

asp.net安全检测工具 --Padding Oracle 检测

最近的一个asp.net安全缺陷,引起了社区很大的反响,博客园也有一个ASP.NET的Padding Oracle安全漏洞的话题,昨天在博客上贴了一个文章ASP...

1847
来自专栏软件测试经验与教训

Fiddler用法整理

读书与实践是获取知识的主要渠道,学习的权力只掌握在每个人自己手中,让学习成为一种生活的习惯,这比任何名牌大学的校徽重要得多!

711
来自专栏C/C++基础

Linux命令(18)——screen命令

screen是GNU计划开发的用于终端命令行的管理工具,可以新建和管理多个终端命令行会话,并提供切换,分离,挂接等相应的功能。

732
来自专栏古时的风筝

用python实现的百度音乐下载器-python-pyqt-改进版

之前写过一个用python实现的百度新歌榜、热歌榜下载器的博文,实现了百度新歌、热门歌曲的爬取与下载。但那个采用的是单线程,网络状况一般的情况下,扫描前100首...

2308

扫码关注云+社区