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