[ 
https://issues.apache.org/jira/browse/HBASE-20237?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16407512#comment-16407512
 ] 

stack commented on HBASE-20237:
-------------------------------

I tried a 0.98 shell against patched hbase2 and it fails the same way:

{code}
kalashnikov:hbase.git.clean stack$ ./bin/hbase shell
2018-03-20 23:14:38,227 INFO  [main] Configuration.deprecation: 
hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.98.25-SNAPSHOT, r332f66eec53eecef7e2ecbe34042e6338f4cfa7d, Tue Mar 20 
22:58:55 PDT 2018

hbase(main):001:0> list
TABLE
2018-03-20 23:14:42,994 WARN  [main] util.NativeCodeLoader: Unable to load 
native-hadoop library for your platform... using builtin-java classes where 
applicable
tsdb
tsdb-meta
tsdb-tree
tsdb-uid
x
5 row(s) in 0.7370 seconds

=> ["tsdb", "tsdb-meta", "tsdb-tree", "tsdb-uid", "x"]
hbase(main):002:0> create 'y', 'y'
0 row(s) in 0.8610 seconds

=> Hbase::Table - y
hbase(main):003:0> put 'y', 'y:y', 'y', 'y'

ERROR: Failed 1 action: 
org.apache.hadoop.hbase.exceptions.UnknownProtocolException: Support for 
getClosestRowBefore was removed in hbase-2.0.0
        at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.get(RSRpcServices.java:2440)
        at 
org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:41791)
        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409)
        at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:130)
        at 
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324)
        at 
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304)
: 1 time, servers with issues: null location,

Here is some help for this command:
Put a cell 'value' at specified table/row/column and optionally
timestamp coordinates.  To put a cell value into table 'ns1:t1' or 't1'
at row 'r1' under column 'c1' marked with the time 'ts1', do:

  hbase> put 'ns1:t1', 'r1', 'c1', 'value'
  hbase> put 't1', 'r1', 'c1', 'value'
  hbase> put 't1', 'r1', 'c1', 'value', ts1
  hbase> put 't1', 'r1', 'c1', 'value', {ATTRIBUTES=>{'mykey'=>'myvalue'}}
  hbase> put 't1', 'r1', 'c1', 'value', ts1, {ATTRIBUTES=>{'mykey'=>'myvalue'}}
  hbase> put 't1', 'r1', 'c1', 'value', ts1, {VISIBILITY=>'PRIVATE|SECRET'}

The same commands also can be run on a table reference. Suppose you had a 
reference
t to table 't1', the corresponding command would be:

  hbase> t.put 'r1', 'c1', 'value', ts1, {ATTRIBUTES=>{'mykey'=>'myvalue'}}
{code}

> Put back getClosestRowBefore and throw UnsupportedOperation instead... for 
> asynchbase client
> --------------------------------------------------------------------------------------------
>
>                 Key: HBASE-20237
>                 URL: https://issues.apache.org/jira/browse/HBASE-20237
>             Project: HBase
>          Issue Type: Bug
>          Components: compatibility, Operability
>            Reporter: stack
>            Assignee: stack
>            Priority: Major
>             Fix For: 2.0.0
>
>         Attachments: HBASE-20237.branch-2.001.patch
>
>
> asychbase can work against all hbase versions. This fact has saved us a few 
> times; e.g. LINE were able to migrate from 0.94 to 1.2 going in part via 
> asynchbase and its ability to work against all servers.
> hbase2 breaks this ability of asynchbase. There is nothing for asynchbase to 
> figure definitively that it is talking to an hbase2 server (See HBASE-20225). 
> Lets add back something it can leverage.  HBASE-13954 did a nice job purging 
> getClosestRowBefore. Lets put back an RPC stuff that throws an exception if 
> it gets called. Thats enough for asynchbase.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to