[ https://issues.apache.org/jira/browse/HBASE-13149?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14355439#comment-14355439 ]
Sean Busbey commented on HBASE-13149: ------------------------------------- {quote} I think the changes are in the internals of Jackson from what I see in the report for jackson-core. {quote} I've attached a single report for everything, which makes it easier to spot things that are broken. Additionally, the release notes pointed out by [~jinghe] earlier makes it clear that there are breaking changes: {quote} Here is more info on the jackson releases: http://svn.codehaus.org/jackson/trunk/release-notes/VERSION You can see in this Release Notes the following for 1.9: {noformat} Potential backwards compatibility issues (compared to 1.8.x): * Removed 'org.codehaus.jackson.annotate.JsonClass, JsonKeyClass and JsonContentClass (deprecated since 1.1) * Move TokenBufferDeserializer to separate class (from inside StdDeserializer) {noformat} {quote} This will break anyone relying on the old annotation approach to using JSON with POJOs. Semver makes no allowance for removing "just deprecated stuff" on minor version and the [jackson versioning statement doesn't carve it out|https://github.com/FasterXML/jackson-docs#on-jackson-versioning] {quote} I do not realistically expect us to do a full sweep of every dependency compat story, so we should rely on what our dependencies use for versioning. Assuming that jackson (or other deps) uses semver or something similar going from 1.8 to 1.9 should be fine. {quote} I am willing to do such a check so long as we are going to make downstream promises. I believe I can also automate it. I think the above notes on jackson make it clear that they did not follow semver for 1.8 -> 1.9, regardless of what their stated policy is. {quote} I do not think we should corner ourselves into "cannot upgrade dependencies" situation (I think Nick Dimiduk started a thread on this some time ago). From what I see, inconveniencing our users with not upgrading this lib in 1.1 is far worse than upgrading it, but possibly causing some minor (if any) inconvenience in case the user is relying on that lib explicitly. {quote} This is fine, provided we update our compatibility promises to reflect this reality. There is pain in either direction, we just need to set expectations for downstream folks. Note that options #2 and #3 I provided above will meet the goal of fixing this by updating the dependency while having a compatibility promise that is realistic for downstream folks. If we are going to set a precedent that's different from our current compatibility promises for dependencies, we should get a wider audience on dev@. > HBase MR is broken on Hadoop 2.5+ Yarn > -------------------------------------- > > Key: HBASE-13149 > URL: https://issues.apache.org/jira/browse/HBASE-13149 > Project: HBase > Issue Type: Bug > Affects Versions: 1.0.0, 2.0.0, 0.98.10.1 > Reporter: Jerry He > Priority: Critical > Attachments: HBASE-13149-0.98.patch, HBASE-13149-master.patch, > jackson-core-asl-compat_report.html, jackson-jaxrs-compat_report.html, > jackson-mapper-asl-compat_report.html, jackson-xc-compat_report.html, > jackson_1.8_to_1.9_compat_report.html > > > Running the server MR tools is not working on Yarn version 2.5+. > Running org.apache.hadoop.hbase.mapreduce.Export: > {noformat} > Exception in thread "main" java.lang.NoSuchMethodError: > org.codehaus.jackson.map.ObjectMapper.setSerializationInclusion(Lorg/codehaus/jackson/map/annotate/JsonSerialize$Inclusion;)Lorg/codehaus/jackson/map/ObjectMapper; > at > org.apache.hadoop.yarn.webapp.YarnJacksonJaxbJsonProvider.configObjectMapper(YarnJacksonJaxbJsonProvider.java:59) > at > org.apache.hadoop.yarn.util.timeline.TimelineUtils.<clinit>(TimelineUtils.java:47) > at > org.apache.hadoop.yarn.client.api.impl.YarnClientImpl.serviceInit(YarnClientImpl.java:166) > at > org.apache.hadoop.service.AbstractService.init(AbstractService.java:163) > at > org.apache.hadoop.mapred.ResourceMgrDelegate.serviceInit(ResourceMgrDelegate.java:102) > at > org.apache.hadoop.service.AbstractService.init(AbstractService.java:163) > at > org.apache.hadoop.mapred.ResourceMgrDelegate.<init>(ResourceMgrDelegate.java:96) > at org.apache.hadoop.mapred.YARNRunner.<init>(YARNRunner.java:112) > at > org.apache.hadoop.mapred.YarnClientProtocolProvider.create(YarnClientProtocolProvider.java:34) > at org.apache.hadoop.mapreduce.Cluster.initialize(Cluster.java:95) > at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:82) > at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:75) > at org.apache.hadoop.mapreduce.Job$9.run(Job.java:1266) > at org.apache.hadoop.mapreduce.Job$9.run(Job.java:1262) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAs(Subject.java:415) > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628) > at org.apache.hadoop.mapreduce.Job.connect(Job.java:1261) > at org.apache.hadoop.mapreduce.Job.submit(Job.java:1290) > at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1314) > at org.apache.hadoop.hbase.mapreduce.Export.main(Export.java:189) > {noformat} > The problem seems to be the jackson jar version. HADOOP-10104 updated > jackson version to 1.9.13. YARN-2092 reported a problem as well. > HBase is using jackson 1.8.8. This version of the jar in the classpath seem > to cause the problem. > Should we upgrade to jackson 1.9.13? -- This message was sent by Atlassian JIRA (v6.3.4#6332)