FATAL [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster:启动MRAppMaster java.lang.NoSuchMethodError时出错:

时间:2018-02-22 20:29:11

标签: amazon-s3 yarn hadoop2 emr

我正在尝试在EMR集群上运行mapreduce作业。 EMR上的Hadoop版本是2.7.3。 该代码用于读取驻留在S3存储桶上的HFile。但是每次运行它都会失败并出现以下错误。

2018-02-22 20:02:11,641 FATAL [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Error starting MRAppMaster
java.lang.NoSuchMethodError: org.apache.hadoop.mapred.TaskLog.createLogSyncer()Ljava/util/concurrent/ScheduledExecutorService;
        at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.<init>(MRAppMaster.java:250)
        at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.<init>(MRAppMaster.java:233)
        at org.apache.hadoop.mapreduce.v2.app.MRAppMaster.main(MRAppMaster.java:1472)
2018-02-22 20:02:12,188 INFO [main] org.apache.hadoop.util.ExitUtil: Exiting with status 1
End of LogType:syslog

实际代码旨在从HDFS读取文件,这些文件在基于CDH的群集中表现良好,其中hadoop版本为2.6.0。但是,需要在AWS中从基于EMR的群集上的S3存储桶中读取HFile。我在代码中做了一些更改,这将允许它读取任何文件系统。以下是变更的片段

...
Path JSONOutputjob2 = new Path( args[1] );
FileSystem.get(JSONOutputjob2.toUri(), conf2).delete(JSONOutputjob2, true);
...

我将路径作为参数传递,这是我尝试使用文件路径的选项。

s3n://emr-ip/path/to/the/file
s3a://emr-ip/path/to/the/file
s3://emr-ip/path/to/the/file

这个错误真的让我抓狂。我已更新我的pom.xml文件以使用群集的可用Hadoop版本并构建项目。构建也很成功。但是不起作用。任何建议或帮助都非常感谢。

编辑: 我更新了我的pom以获得aws hadoop版本,即2.7.3,但没有解决问题。

0 个答案:

没有答案