Details
-
Task
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
LevelDBCacheTimelineStore requires jackson-databind-2.2.3.jar which is in $HADOOP_HOME/share/hadoop/tools/lib but is never added in timeline server's classpath. Reading data from LevelDBCacheTimelineStore will get NoClassDefFoundError. Here's the stacktrace:
java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper at org.apache.hadoop.yarn.server.timeline.LevelDBCacheTimelineStore$LevelDBMapAdapter.getEntityForKey(LevelDBCacheTimelineStore.java:296) at org.apache.hadoop.yarn.server.timeline.LevelDBCacheTimelineStore$LevelDBMapAdapter.get(LevelDBCacheTimelineStore.java:161) at org.apache.hadoop.yarn.server.timeline.LevelDBCacheTimelineStore$LevelDBMapAdapter.get(LevelDBCacheTimelineStore.java:140) at org.apache.hadoop.yarn.server.timeline.KeyValueBasedTimelineStore.getEntity(KeyValueBasedTimelineStore.java:199) at org.apache.hadoop.yarn.server.timeline.LevelDBCacheTimelineStore.getEntity(LevelDBCacheTimelineStore.java:58) at org.apache.hadoop.yarn.server.timeline.TimelineDataManager.doPostEntities(TimelineDataManager.java:349) at org.apache.hadoop.yarn.server.timeline.TimelineDataManager.postEntities(TimelineDataManager.java:317) at org.apache.hadoop.yarn.server.timeline.EntityLogInfo.doParse(LogInfo.java:204) at org.apache.hadoop.yarn.server.timeline.LogInfo.parsePath(LogInfo.java:156) at org.apache.hadoop.yarn.server.timeline.LogInfo.parseForStore(LogInfo.java:113) at org.apache.hadoop.yarn.server.timeline.EntityCacheItem.refreshCache(EntityCacheItem.java:143) at org.apache.hadoop.yarn.server.timeline.EntityGroupFSTimelineStore.getCachedStore(EntityGroupFSTimelineStore.java:938) at org.apache.hadoop.yarn.server.timeline.EntityGroupFSTimelineStore.getTimelineStoresFromCacheIds(EntityGroupFSTimelineStore.java:853) at org.apache.hadoop.yarn.server.timeline.EntityGroupFSTimelineStore.getTimelineStoresForRead(EntityGroupFSTimelineStore.java:906) at org.apache.hadoop.yarn.server.timeline.EntityGroupFSTimelineStore.getEntities(EntityGroupFSTimelineStore.java:959) at org.apache.hadoop.yarn.server.timeline.TimelineDataManager.doGetEntities(TimelineDataManager.java:169) at org.apache.hadoop.yarn.server.timeline.TimelineDataManager.getEntities(TimelineDataManager.java:139) at org.apache.hadoop.yarn.server.timeline.webapp.TimelineWebServices.getEntities(TimelineWebServices.java:119) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498)
A temporary fix would be adding $HADOOP_HOME/share/hadoop/tools/lib/* into HADOOP_CLASSPATH manually.
Attachments
Issue Links
- is related to
-
YARN-4233 YARN Timeline Service plugin: ATS v1.5
- Open