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