1. 程式人生 > 其它 >坑爹的一次bug,ClassNotFoundException:yarn.server.resourcemanager.CapacityScheduler,(xml配置異常,隱蔽的錯誤)

坑爹的一次bug,ClassNotFoundException:yarn.server.resourcemanager.CapacityScheduler,(xml配置異常,隱蔽的錯誤)

技術標籤:bug異常

cuowei在配置yarn-site.xml時,發生了很隱蔽的bug,由於在配置的標籤中使用了換行,導致讀取的類出現class not found exception,

xml的value標籤之間不要換行或者有空格

Caused by: java.lang.ClassNotFoundException:
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler

at java.net.URLClassLoader.findClass(URLClassLoader.java:382)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.createScheduler(ResourceManager.java:304)
... 6 more

正確配置如下:value標籤之間不要換行或者有空格

<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>

錯位配置如下:

<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
</value>
</property>

另外注意一點:

xml的註釋,多加--也會報錯。