Hadoop 用户定义辅助服务器的HBase协处理器实现

Hadoop 用户定义辅助服务器的HBase协处理器实现,hadoop,hbase,Hadoop,Hbase,我试图在我的系统本地添加用于辅助存储的用户定义协处理器,我已参考“”链接进行实现。当我尝试进行静态协处理器加载时,我得到了一些与RegionProcessor相关的错误,表示所提到的类不是RegionProcessor的类型。请帮助我完成此功能 DatabaseCrudoProcessor.java>实现> @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.COPROC) @InterfaceStability.Evolving

我试图在我的系统本地添加用于辅助存储的用户定义协处理器,我已参考“”链接进行实现。当我尝试进行静态协处理器加载时,我得到了一些与RegionProcessor相关的错误,表示所提到的类不是RegionProcessor的类型。请帮助我完成此功能

DatabaseCrudoProcessor.java>实现>

 @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.COPROC)
@InterfaceStability.Evolving
public class DatabaseCrudCoprocessor  implements RegionObserver {
    private static final String className = "DatabaseCrudCoprocessor";
    private static JsonObject object = new JsonObject();
    static final CloudLogger logger = CloudLogger.getLogger("DatabaseCrudCoprocessor");


    public void postPut(ObserverContext<RegionCoprocessorEnvironment> c, Put put, WALEdit edit, Durability durability)
            throws IOException {
        try {
            Connection con = c.getEnvironment().getConnection();
            logger.info("---------------------This Code Is Excecute---------------------------");
        }catch(Exception e) {
            logger.error("In "+className+" postPut : Exception : "+e);
        }
    }
}
SLF4J:在[jar:file:/home/hadoop/hbase/hbase/lib/demo-0.0.2-SNAPSHOT-jar-with-dependencies.jar!/org/SLF4J/impl/StaticLoggerBinder.class]中找到绑定 SLF4J:在[jar:file:/home/hadoop/hbase/hbase/lib/phoenix-5.0.0-hbase-2.0-client.jar!/org/SLF4J/impl/StaticLoggerBinder.class]中找到绑定 SLF4J:在[jar:file:/home/hadoop/hbase/hbase/lib/phoenix-5.0.0-hbase-2.0-hive.jar!/org/SLF4J/impl/StaticLoggerBinder.class]中找到绑定 SLF4J:在[jar:file:/home/hadoop/hbase/hbase/lib/phoenix-5.0.0-hbase-2.0-pig.jar!/org/SLF4J/impl/StaticLoggerBinder.class]中找到绑定 SLF4J:在[jar:file:/home/hadoop/hbase/hbase/lib/phoenix-5.0.0-hbase-2.0-thin-client.jar!/org/SLF4J/impl/StaticLoggerBinder.class]中找到绑定 SLF4J:在[jar:file:/home/hadoop/hbase/hbase/lib/SLF4J-log4j12-1.7.25.jar!/org/SLF4J/impl/StaticLoggerBinder.class]中找到绑定 SLF4J:有关说明,请参阅。 SLF4J:实际绑定的类型为[org.SLF4J.impl.Log4jLoggerFactory] 0[RS-EventLoopGroup-1-2]INFO SecurityLogger.org.apache.hadoop.hbase.Server-从127.0.0.1:45903连接,版本=2.2.2,sasl=false,ugi=hadoop(auth:SIMPLE),服务=RegionServerStatusService 1266[主机/本地主机:60000:becomeActiveMaster]错误org.apache.hadoop.hbase.master.RegionServerTracker-本地主机,600201576052978374没有匹配的ServerCrashProcedure 1266[主机/本地主机:60000:becomeActiveMaster]错误org.apache.hadoop.hbase.master.RegionServerTracker-本地主机,600201539250172019没有匹配的ServerCrashProcedure 1266[主机/本地主机:60000:becomeActiveMaster]错误org.apache.hadoop.hbase.master.RegionServerTracker-本地主机,600201576071410923没有匹配的ServerCrashProcedure 1266[主机/本地主机:60000:becomeActiveMaster]错误org.apache.hadoop.hbase.master.RegionServerTracker-本地主机,600201576127072238没有匹配的ServerCrashProcedure

在RegionServer上>>>>>

SLF4J: Class path contains multiple SLF4J bindings.
0    [RS-EventLoopGroup-1-3] INFO  SecurityLogger.org.apache.hadoop.hbase.Server  - Connection from 127.0.0.1:33828, version=2.2.2, sasl=false, ugi=hadoop (auth:SIMPLE), service=AdminService
167[RS_CLOSE_META-regionserver/localhost:60020-0]错误org.apache.hadoop.hbase.regionserver.regionprocessorhost-demo.databasecrudocprocessor不是regionprocessor类型。检查hbase.coprocessor.region.classes的配置 167[RS_CLOSE_META-regionserver/localhost:60020-0]错误org.apache.hadoop.hbase.coprocessor.coprocessor.CoprocessorHost-无法加载协处理器数据库crudocprocessor
1302[RS-EventLoopGroup-1-4]INFO SecurityLogger.org.apache.hadoop.hbase.Server-连接自127.0.0.1:33830,版本=2.2.2,sasl=false,ugi=hadoop(auth:SIMPLE),service=ClientService

要成为
RegionProcessor
您的类还应该实现
org.apache.hadoop.hbase.coprocessor.RegionProcessor
尝试实现RegionProcessor和RegionObserver 并重写getRegionObserver()方法。如果您使用的是hbase 2.0版本

  public class RegionObserverExample implements RegionCoprocessor, RegionObserver {
         @Override
        public Optional<RegionObserver> getRegionObserver() {
          return Optional.of(this);
        }
       ...
     }
公共类RegionObserver示例实现RegionProcessor、RegionObserver{
@凌驾
公共可选getRegionObserver(){
返回可选的(本);
}
...
}

我尝试添加RegionProcessor,但它仍显示相同的错误。