- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
将我们的应用程序从 2.6.0 更新到 2.7.1 后,我无法让我们的映射器作业正确运行,作业日志中出现以下内容:
SEVERE: Error starting MRAppMaster
java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.LogManager
at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:64)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:285)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:305)
at org.apache.hadoop.security.authentication.util.KerberosName.<clinit>(KerberosName.java:43)
at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:275)
at org.apache.hadoop.security.UserGroupInformation.setConfiguration(UserGroupInformation.java:311)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.initAndStartAppMaster(MRAppMaster.java:1492)
at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.main(MRAppMaster.java:1448)
我最初认为这是我们作业中的类路径问题,为此我们的库被复制到分布式缓存,然后在每个作业运行之前添加到作业的类路径中。尽管所有库都已就位并在运行作业之前已添加到类路径,但经过一些验证确认。
hadoop classpath
和yarn classpath
都显示hadoop/share/hadoop
下的所有内容都在类路径上,其中包含 lib (log4j ) 有问题的类属于上面。
我们有点没主意了。正在执行的代码在我们的 2.6.0 分支上运行良好。我们可能缺少什么?
最佳答案
所以这最终成为一个微妙的问题,有问题的类是在类路径上提供的,但是当它最初被加载时它被炸毁了,因为它引用了一个空变量,并且随后的异常/堆栈跟踪表明这在 Hadoop 的深处丢失了!
在 Hadoop 2.7.x 中,ContainerLogAppender 获得了设置 ContainerLogFile 的能力。不幸的是,如果 log4j.appender.CLA.containerLogFile=${hadoop.root.logfile}
和 log4j.appender.CRLA.containerLogFile=${hadoop.root.logfile}
未在 hadoop/etc/hadoop/container-log4j.properties
中设置,然后这与 NPE 一起爆炸。以前它默认为“syslog”,现在它没有默认值,并且很乐意让你自己挖个坑。因此,当类在被类加载器加载时崩溃时,它们实际上被删除了,因此为什么进一步向下作业报告 NoClassDefFoundError
而不是 ClassNotFoundException
。
关于java - 在 Hadoop 2.6.0 到 2.7.1 升级上启动 MRAppMaster 时出现 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32954057/
我的想法不多了。...我尝试了许多配置,但没有任何效果。我正在尝试通过hadoop集群上的yarn运行jar文件,仅获得: 2020-10-07 21:27:01,960 INFO [main] or
我是Hadoop的初学者,我尝试使用MR将一些数据导入HBase,但是失败了。控制台显示错误信息: Container exited with a non-zero exit code 1. Last
如果您有帮助,我对sqoop有任何疑问,非常感谢您的帮助。 我从本地计算机编写了一个sqoop命令,将数据从hdfs导出到oracle数据数据库。我在本地计算机上使用hadoop-3.3.0和sqoo
在安装 Hadoop 后,我试图启动一个相当简单的 WordCount(我非常关注 this tutorial),但我得到了这个: 2018-04-05 16:51:00,192 INFO mapre
mapred-site.xml 的内容: mapreduce.framework.name yarn yarn.app.mapreduce.am.env HADOOP_MAPRED_H
我刚刚开始使用 Hadoop 2。 使用基本配置安装后,我总是无法运行任何示例。有没有人看到这个问题,请帮助我? 错误是这样的 Error starting MRAppMaster java.lang
我的查询:我在 ubantu 上安装了配置单元。我之前测试过它是工作文件,但后来它开始出错。 insert into test2 values (1,'Mahendra'); 我的 hive 错误:
当我运行 distcp 将数据从 s3 移动到我的本地 hdfs 时,我在启动 map reduce 作业以复制数据期间遇到此异常: Error: Could not find or load mai
尝试在 Fedora 上执行任何 M/R2 作业时出现此异常。 Hadoop 2.7.3 和 2.8.0 有同样的问题。这包括 Hive。 [hadoop@master hadoop]$ yarn c
我是hadoop的新手。 我正在尝试将Giraph设置为在带有 yarn 的hadoop-2.6.5上运行。 当我提交Giraph作业时,该作业被成功提交但失败,并且在容器syslog中获得以下日志:
将我们的应用程序从 2.6.0 更新到 2.7.1 后,我无法让我们的映射器作业正确运行,作业日志中出现以下内容: SEVERE: Error starting MRAppMaster java.la
我是一名优秀的程序员,十分优秀!