Обработчик хранилища HBase: UnknownProtocolException: не найден сопроцессор для имени AuthenticationService hbase: meta - PullRequest
0 голосов
/ 16 марта 2020

Ошибка

Получение этой ошибки с помощью HBase Storage Handler в Hive при выполнении запроса в среде Kerberized. на 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$2.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)

Важная часть:

Не зарегистрирован Сопроцессор Обнаружена служба для имени AuthenticationService в регионе hbase:meta,,1

Я немного прочитал и узнал, что AuthenticationService предоставляется сопроцессором TokenProvider .

1 Ответ

0 голосов
/ 16 марта 2020

В 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

...