Problem
While browsing all data with an artifact, it resulted in the following error:
java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.format(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
at org.slf4j.impl.Log4jLoggerAdapter.info(Log4jLoggerAdapter.java:318)
at org.apache.parquet.hadoop.ParquetOutputFormat.getRecordWriter(ParquetOutputFormat.java:329)
at datameer.dap.common.graphv2.hadoop.TaskSideSingleRecordWriter$ParquetFileSink.<init>(TaskSideSingleRecordWriter.java:219)
at datameer.dap.common.graphv2.hadoop.TaskSideSingleRecordWriter.<init>(TaskSideSingleRecordWriter.java:90)
at datameer.dap.common.graphv2.ProcessingContext.openTaskLocalRecordWriter(ProcessingContext.java:415)
at datameer.dap.common.graphv2.consumer.DatameerFileWriter.openRecordWriter(DatameerFileWriter.java:112)
at datameer.dap.common.graphv2.consumer.DatameerFileWriter.consumeRecord(DatameerFileWriter.java:100)
at datameer.dap.common.graphv2.RecordSequences.consumeRecord(RecordSequences.java:120)
at datameer.dap.common.graphv2.RecordSequences$1.accept(RecordSequences.java:81)
at datameer.dap.common.graphv2.RecordSequences$1.accept(RecordSequences.java:78)
at datameer.dap.sdk.sequence.Sequence$14.computeNext(Sequence.java:631)
at datameer.dap.sdk.sequence.Sequence$Simple.moveToNext(Sequence.java:153)
at datameer.dap.sdk.sequence.Sequence$13.moveToNext(Sequence.java:585)
at datameer.dap.common.graphv2.local.LocalClusterJob.runImpl(LocalClusterJob.java:296)
at datameer.dap.common.graphv2.local.LocalClusterJob.runImpl(LocalClusterJob.java:69)
at datameer.dap.common.graphv2.ClusterJob.run(ClusterJob.java:115)
at datameer.dap.common.graphv2.ClusterSession.execute(ClusterSession.java:230)
at datameer.dap.common.graphv2.ClusterSession.runAllClusterJobs(ClusterSession.java:347)
at datameer.dap.common.graphv2.JobExecutionPlanRunner.run(JobExecutionPlanRunner.java:122)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at datameer.dap.common.security.DatameerSecurityService.runAsUser(DatameerSecurityService.java:125)
at datameer.dap.common.security.DatameerSecurityService.runAsUser(DatameerSecurityService.java:202)
at datameer.dap.common.security.RunAsThread$1.run(RunAsThread.java:34)
at datameer.dap.common.security.RunAsThread$1.run(RunAsThread.java:30)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Unknown Source)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1920)
at datameer.dap.common.impersonation.ClusterAwareUgiImpersonator.doAs(ClusterAwareUgiImpersonator.java:43)
at datameer.dap.common.impersonation.ConfigurableImpersonator.doAs(ConfigurableImpersonator.java:34)
at datameer.dap.common.security.RunAsThread.run(RunAsThread.java:30)
Cause
In this case an older version of slf4j JAR file such as slf4j-api-1.5.11.jar was copied into <Datameer_Installation_Directory>/etc/custom-jars directory where as the underlying Datameer package bundled newer version: slf4j-api-1.7.5.jar
The method being referenced i..e format has changed across versions. The application couldn't find the expected one, hence resulting in the error.
Solution
By switching to proper JAR file, the error has gone and the underlying data displayed properly.
Comments
0 comments
Please sign in to leave a comment.