[
https://issues.apache.org/jira/browse/HBASE-13149?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jerry He updated HBASE-13149:
-----------------------------
Release Note:
In HBase 1.1.0 and above we have upgraded the version of Jackson dependencies
(jackson-core-asl, jackson-mapper-asl, jackson-jaxrs and jackson-xc) from 1.8.8
to 1.9.13.
This is to follow the upgrade to Jackson 1.9.13 in Hadoop 2.5 and above which
causes Jackson class incompatibility for HBase as reported in HBASE-13149.
Refer to HADOOP-10104 and YARN-2092 for additional information.
Jackson1.9.13 is not completely backward compatible with the prior version
1.8.8 used in HBase. See the Compatibility reports attached in HBASE-13149 and
http://svn.codehaus.org/jackson/trunk/release-notes/VERSION for more
information.
This upgrade does not have direct impact on HBase users and HBase applications
in most cases.
In the rare case where your HBase application uses Jackson directly AND your
application has compatibility issue with Jackson 1.9.13,
you can do the following to mitigate the problem.
1. If you are on Hadoop 2.5 or above, and your HBase application involves
running Yarn jobs, we recommend you update your application to use Jackson
1.9.13. You may be able to explore classpath isolation options (e.g.
HADOOP-10893) or have your own classpath isolation strategy that works for you,
but the general recommendation is that you upgrade to Jackson 1.9.13.
2. You may choose to continue using Jackson 1.8.8 and not to use Jackson 1.9.13
in your classpath. You can also choose to replace the Jackson 1.9.13 jars in
$HBASE_HOME/lib with 1.8.8 jars. It can work for you in the following cases:
a) You are on a Hadoop version earlier than Hadoop 2.5, or
b) You are on Hadoop 2.5 or above, but your HBase application does not involve
running Yarn jobs.
Note that it may not be tested or guaranteed that using Jackson 1.8.8 in
$HBASE_HOME/lib will work in future HBase releases.
It is recommended that your HBase application matches the Jackson version
provided in HBase.
In HBase 0.98.x, we have NOT upgraded the version of Jackson dependencies.
If you are on Hadoop 2.5 or above, and your HBase application involves running
Yarn jobs, you may encounter Jackson class incomparability issue, as reported
in HBASE-13149.
You can do the following to mitigate the problem:
1. Use 'hadoop jar' command to run your HBase jobs.
2. Explore classpath isolation options (e.g. HADOOP-10893) or have your own
classpath isolation strategy that works for you.
3. You can also choose to replace the Jackson 1.8.8 jars in $HBASE_HOME/lib
with 1.9.13 jars from your Hadoop lib directory. We have tested HBase 0.98 with
Jackson 1.9.13.
> 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
> Assignee: Jerry He
> Priority: Blocker
> Fix For: 2.0.0, 1.1.0, 1.2.0
>
> 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)