错误信息
当hbase表启用副本大于1时可能会访问到副本数据 当访问到副本数据时会出现下面问题
错误信息
hbase(main):044:0> get ‘wqg:test_aa’,‘key01’,{CONSISTENCY => ‘TIMELINE’, REGION_REPLICA_ID => 1}
COLUMN CELL
ERROR: java.io.IOException: d33a1259e7df8b5487a24215fa299afd: The region’s reads are disabled. Cannot serve the request
at org.apache.hadoop.hbase.regionserver.HRegion.checkReadsEnabled(HRegion.java:3748)
at org.apache.hadoop.hbase.regionserver.HRegion.startRegionOperation(HRegion.java:8166)
at org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:2610)
at org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:2604)
at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:6968)
at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:6927)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.get(RSRpcServices.java:2027)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService
2.
c
a
l
l
B
l
o
c
k
i
n
g
M
e
t
h
o
d
(
C
l
i
e
n
t
P
r
o
t
o
s
.
j
a
v
a
:
33644
)
a
t
o
r
g
.
a
p
a
c
h
e
.
h
a
d
o
o
p
.
h
b
a
s
e
.
i
p
c
.
R
p
c
S
e
r
v
e
r
.
c
a
l
l
(
R
p
c
S
e
r
v
e
r
.
j
a
v
a
:
2191
)
a
t
o
r
g
.
a
p
a
c
h
e
.
h
a
d
o
o
p
.
h
b
a
s
e
.
i
p
c
.
C
a
l
l
R
u
n
n
e
r
.
r
u
n
(
C
a
l
l
R
u
n
n
e
r
.
j
a
v
a
:
112
)
a
t
o
r
g
.
a
p
a
c
h
e
.
h
a
d
o
o
p
.
h
b
a
s
e
.
i
p
c
.
R
p
c
E
x
e
c
u
t
o
r
2.callBlockingMethod(ClientProtos.java:33644) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2191) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112) at org.apache.hadoop.hbase.ipc.RpcExecutor
2.callBlockingMethod(ClientProtos.java:33644)atorg.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2191)atorg.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)atorg.apache.hadoop.hbase.ipc.RpcExecutorHandler.run(RpcExecutor.java:183)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:163)
查看原表属性
hbase(main):047:0* desc ‘wqg:test_aa’
Table wqg:test_aa is ENABLED
wqg:test_aa, {TABLE_ATTRIBUTES => {REGION_REPLICATION => ‘2’}
COLUMN FAMILIES DESCRIPTION
{NAME => ‘infor’, BLOOMFILTER => ‘ROW’, VERSIONS => ‘1’, IN_MEMORY => ‘false’, KEEP_DELETED_CELLS => ‘FALSE’, DATA_BLOCK_ENCODING => ‘NONE’, TTL => ‘FOREVER’, COMPRESSION =>
‘NONE’, MIN_VERSIONS => ‘0’, BLOCKCACHE => ‘true’, BLOCKSIZE => ‘65536’, REPLICATION_SCOPE => ‘0’}
1 row(s) in 0.0230 seconds
解决
alter ‘wqg:test_aa’,{ METADATA => {‘REGION_MEMSTORE_REPLICATION’ => ‘false’}}
alter ‘wqg:test_aa’,{CONFIGURATION => {‘hbase.region.replica.wait.for.primary.flush’ => ‘false’}}
再次访问
get ‘wqg:test_aa’,‘key01’,{CONSISTENCY => ‘TIMELINE’, REGION_REPLICA_ID => 1}
正常