[
https://issues.apache.org/jira/browse/HBASE-18803?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16165616#comment-16165616
]
Duo Zhang commented on HBASE-18803:
-----------------------------------
Curator can greatly simplify the logic for communicating with zookeeper,
especially the retry logic under asynchronous scenario. I plan to replace all
the RecoverableZooKeeper usage at client side with curator.
RecoverableZooKeeper can then focus on server side usage as the requirements
are different between client and server. Client is read only and does not care
about session expire, reconnecting with another session id is acceptable. But
for server, we need to write to zookeeper, and when session expired, we should
quit instead of reconnecting.
And if there are conflicts between curator 2.x, let's also shade it? Can do it
in a follow on issue. Thanks.
> Mapreduce job get failed caused by NoClassDefFoundError:
> org/apache/commons/lang3/ArrayUtils
> --------------------------------------------------------------------------------------------
>
> Key: HBASE-18803
> URL: https://issues.apache.org/jira/browse/HBASE-18803
> Project: HBase
> Issue Type: Bug
> Affects Versions: 2.0.0-alpha-2
> Reporter: Yi Liang
> Assignee: Yi Liang
> Fix For: 2.0.0
>
> Attachments: HBASE-18803-v1-master.patch
>
>
> 2017-09-12 17:44:13,020 INFO [main] mapreduce.Job: Task Id :
> attempt_1505170797673_0010_m_000000_0, Status : FAILED
> Error: java.io.IOException: java.lang.reflect.InvocationTargetException
> at
> org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:221)
> at
> org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:114)
> at
> org.apache.hadoop.hbase.PerformanceEvaluation$EvaluationMapTask.map(PerformanceEvaluation.java:311)
> at
> org.apache.hadoop.hbase.PerformanceEvaluation$EvaluationMapTask.map(PerformanceEvaluation.java:264)
> at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:146)
> at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787)
> at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
> at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:422)
> at
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
> at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
> Caused by: java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
> at
> org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:219)
> ... 11 more
> Caused by: java.lang.NoClassDefFoundError: org/apache/commons/lang3/ArrayUtils
> at org.apache.hadoop.hbase.HConstants.<clinit>(HConstants.java:1144)
> at
> org.apache.hadoop.hbase.client.ConnectionUtils.getPauseTime(ConnectionUtils.java:84)
> at
> org.apache.hadoop.hbase.client.AsyncProcess.<init>(AsyncProcess.java:209)
> at
> org.apache.hadoop.hbase.client.ConnectionImplementation.<init>(ConnectionImplementation.java:266)
> ... 16 more
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)