YARN 资源管理器:NoClassDefFoundError with start-yarn.sh

YARN resourcemanager : NoClassDefFoundError with start-yarn.sh

我是 hadoop 和 YARN 的新手。启动 hdfs 后,我使用包中提供的 start-yarn.sh 启动 YARN,但出现错误。

我在 ubuntu 18.04 上使用 hadoop 3.2.0,jdk-11。 我成功地用名称节点和 2 个数据节点启动了 hdfs。 当我使用 start-yarn.sh 和以下配置启动纱线(单节点)时会导致错误。

在etc/hadoop/yarn-site.xml

<configuration>
    <property>
            <name>yarn.acl.enable</name>
            <value>0</value>
    </property>

    <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>10.0.0.87</value>
    </property>

    <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
    </property>
</configuration>

然后我得到如下错误

2019-09-18 15:06:18,118 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Transitioning to standby state
2019-09-18 15:06:18,118 INFO org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Transitioned to standby state
2019-09-18 15:06:18,118 FATAL org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error starting ResourceManager
org.apache.hadoop.yarn.webapp.WebAppException: Error starting http server
    at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:443)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.startWepApp(ResourceManager.java:1197)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceStart(ResourceManager.java:1306)
    at org.apache.hadoop.service.AbstractService.start(AbstractService.java:194)
    at org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.main(ResourceManager.java:1501)
Caused by: java.io.IOException: Unable to initialize WebAppContext
    at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:1157)
    at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:439)
    ... 4 more
Caused by: com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) Error injecting constructor, java.lang.NoClassDefFoundError: javax/activation/DataSource
  at org.apache.hadoop.yarn.server.resourcemanager.webapp.JAXBContextResolver.<init>(JAXBContextResolver.java:41)
  at org.apache.hadoop.yarn.server.resourcemanager.webapp.RMWebApp.setup(RMWebApp.java:54)
  while locating org.apache.hadoop.yarn.server.resourcemanager.webapp.JAXBContextResolver

1 error
    at com.google.inject.internal.InjectorImpl.get(InjectorImpl.java:1025)
    at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051)
    at com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory$GuiceInstantiatedComponentProvider.getInstance(GuiceComponentProviderFactory.java:345)
    at com.sun.jersey.core.spi.component.ioc.IoCProviderFactory$ManagedSingleton.<init>(IoCProviderFactory.java:202)
    at com.sun.jersey.core.spi.component.ioc.IoCProviderFactory.wrap(IoCProviderFactory.java:123)
    at com.sun.jersey.core.spi.component.ioc.IoCProviderFactory._getComponentProvider(IoCProviderFactory.java:116)
    at com.sun.jersey.core.spi.component.ProviderFactory.getComponentProvider(ProviderFactory.java:153)
    at com.sun.jersey.core.spi.component.ProviderServices.getComponent(ProviderServices.java:278)
    at com.sun.jersey.core.spi.component.ProviderServices.getProviders(ProviderServices.java:151)
...

正在寻求您的帮助。非常感谢

I use hadoop 3.2.0, JDK-11... Error injecting constructor, java.lang.NoClassDefFoundError: javax/activation/DataSource

Hadoop 仍然需要 Java 8,它有这个 class

https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Java+Versions