[ 
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)

Reply via email to