HBase 存储处理程序:UnknownProtocolException:找不到名称 AuthenticationService hbase:meta 的协处理器
HBase Storage Handler: UnknownProtocolException: No coprocessor found for name AuthenticationService hbase:meta
错误
当我在 Kerberized 环境中 运行 查询时,Hive 中的 HBase 存储处理程序收到此错误。
在 HBase 1.5
Caused by: org.apache.hadoop.hbase.exceptions.UnknownProtocolException: org.apache.hadoop.hbase.exceptions.UnknownProtocolException:
No registered coprocessor service found for name AuthenticationService in region hbase:meta,,1
at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:8499)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.execServiceOnRegion(RSRpcServices.java:2282)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.execService(RSRpcServices.java:2264)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService.callBlockingMethod(ClientProtos.java:36808)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2399)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:311)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:291)
重要的部分是:
No registered coprocessor service found for name AuthenticationService
in region hbase:meta,,1
我做了一些阅读,了解到 AuthenticationService
是由 TokenProvider 协处理器提供的。
在 hbase-site.xml
中确保配置了这些选项
hadoop.security.authentication
hbase.coprocessor.master.classes
hbase.coprocessor.region.classes
确保值配置如下:
<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
注意:
在旧版本的 HBase 中使用了设置hbase.coprocessor.regionserver.classes
,确保您使用的是正确的; hbase.coprocessor.region.classes
错误
当我在 Kerberized 环境中 运行 查询时,Hive 中的 HBase 存储处理程序收到此错误。 在 HBase 1.5
Caused by: org.apache.hadoop.hbase.exceptions.UnknownProtocolException: org.apache.hadoop.hbase.exceptions.UnknownProtocolException:
No registered coprocessor service found for name AuthenticationService in region hbase:meta,,1
at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:8499)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.execServiceOnRegion(RSRpcServices.java:2282)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.execService(RSRpcServices.java:2264)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService.callBlockingMethod(ClientProtos.java:36808)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2399)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:311)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:291)
重要的部分是:
No registered coprocessor service found for name
AuthenticationService
in regionhbase:meta,,1
我做了一些阅读,了解到 AuthenticationService
是由 TokenProvider 协处理器提供的。
在 hbase-site.xml
中确保配置了这些选项
hadoop.security.authentication
hbase.coprocessor.master.classes
hbase.coprocessor.region.classes
确保值配置如下:
<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
注意:
在旧版本的 HBase 中使用了设置hbase.coprocessor.regionserver.classes
,确保您使用的是正确的; hbase.coprocessor.region.classes