Hi,
Recently I added a field for metadata table seabaseRoutinesDDL in file
CmpSeabaseDDLmd.h, which is unrelated here. then I got the following error when
I initialize the database in trafci:
SQL>initialize trafodion;
*** ERROR[8448] Unable to access Hbase interface. Call to
ExpHbaseInterface::nextRow returned error HBASE_ACCESS_ERROR(-706). Cause:
java.util.concurrent.ExecutionException: java.io.IOException: PerformScan error
on coprocessor call, scannerID: 0
java.util.concurrent.FutureTask.report(FutureTask.java:122)
java.util.concurrent.FutureTask.get(FutureTask.java:188)
org.trafodion.sql.HTableClient.fetchRows(HTableClient.java:1199) Caused by
java.io.IOException: PerformScan error on coprocessor call, scannerID: 0
org.apache.hadoop.hbase.client.transactional.TransactionalScanner.next(TransactionalScanner.java:249)
org.apache.hadoop.hbase.client.AbstractClientScanner.next(AbstractClientScanner.java:70)
org.trafodion.sql.HTableClient$ScanHelper.call(HTableClient.java:286)
org.trafodion.sql.HTableClient$ScanHelper.call(HTableClient.java:284)
java.util.concurrent.FutureTask.run(FutureTask.java:262)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
java.lang.Thread.run(Thread.java:748) Caused by
com.google.protobuf.ServiceException: Error calling method
TrxRegionService.performScan
org.apache.hadoop.hbase.ipc.CoprocessorRpcChannel.callBlockingMethod(CoprocessorRpcChannel.java:75)
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos$TrxRegionService$BlockingStub.performScan(TrxRegionProtos.java:50273)
org.apache.hadoop.hbase.client.transactional.TransactionalScanner.next(TransactionalScanner.java:244)
org.apache.hadoop.hbase.client.AbstractClientScanner.next(AbstractClientScanner.java:70)
org.trafodion.sql.HTableClient$ScanHelper.call(HTableClient.java:286)
org.trafodion.sql.HTableClient$ScanHelper.call(HTableClient.java:284)
java.util.concurrent.FutureTask.run(FutureTask.java:262)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
java.lang.Thread.run(Thread.java:748) Caused by
org.apache.hadoop.hbase.DoNotRetryIOException:
org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.NoClassDefFoundError:
Could not initialize class
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos$PerformScanRequest
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2212)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:109)
at
org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133)
at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos$PerformScanRequest
at
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos$TrxRegionService.getRequestPrototype(TrxRegionProtos.java:49210)
at
org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:7786)
at
org.apache.hadoop.hbase.regionserver.RSRpcServices.execServiceOnRegion(RSRpcServices.java:1988)
at
org.apache.hadoop.hbase.regionserver.RSRpcServices.execService(RSRpcServices.java:1970)
at
org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33652)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2170)
... 4 more
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.lang.reflect.Constructor.newInstance(Constructor.java:526)
org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:106)
org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:95)
org.apache.hadoop.hbase.protobuf.ProtobufUtil.getRemoteException(ProtobufUtil.java:327)
org.apache.hadoop.hbase.protobuf.ProtobufUtil.execService(ProtobufUtil.java:1624)
org.apache.hadoop.hbase.ipc.RegionCoprocessorRpcChannel$1.call(RegionCoprocessorRpcChannel.java:92)
org.apache.hadoop.hbase.ipc.RegionCoprocessorRpcChannel$1.call(RegionCoprocessorRpcChannel.java:89)
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:126)
org.apache.hadoop.hbase.ipc.RegionCoprocessorRpcChannel.callExecService(RegionCoprocessorRpcChannel.java:95)
org.apache.hadoop.hbase.ipc.CoprocessorRpcChannel.callBlockingMethod(CoprocessorRpcChannel.java:73)
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos$TrxRegionService$BlockingStub.performScan(TrxRegionProtos.java:50273)
org.apache.hadoop.hbase.client.transactional.TransactionalScanner.next(TransactionalScanner.java:244)
org.apache.hadoop.hbase.client.AbstractClientScanner.next(AbstractClientScanner.java:70)
org.trafodion.sql.HTableClient$ScanHelper.call(HTableClient.java:286)
org.trafodion.sql.HTableClient$ScanHelper.call(HTableClient.java:284)
java.util.concurrent.FutureTask.run(FutureTask.java:262)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
java.lang.Thread.run(Thread.java:748) Caused by
org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.DoNotRetryIOException):
org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.NoClassDefFoundError:
Could not initialize class
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos$PerformScanRequest
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2212)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:109)
at
org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133)
at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos$PerformScanRequest
at
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos$TrxRegionService.getRequestPrototype(TrxRegionProtos.java:49210)
at
org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:7786)
at
org.apache.hadoop.hbase.regionserver.RSRpcServices.execServiceOnRegion(RSRpcServices.java:1988)
at
org.apache.hadoop.hbase.regionserver.RSRpcServices.execService(RSRpcServices.java:1970)
at
org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33652)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2170)
... 4 more
org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1268)
org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:226)
org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:331)
org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.execService(ClientProtos.java:34118)
org.apache.hadoop.hbase.protobuf.ProtobufUtil.execService(ProtobufUtil.java:1620)
org.apache.hadoop.hbase.ipc.RegionCoprocessorRpcChannel$1.call(RegionCoprocessorRpcChannel.java:92)
org.apache.hadoop.hbase.ipc.RegionCoprocessorRpcChannel$1.call(RegionCoprocessorRpcChannel.java:89)
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:126)
org.apache.hadoop.hbase.ipc.RegionCoprocessorRpcChannel.callExecService(RegionCoprocessorRpcChannel.java:95)
org.apache.hadoop.hbase.ipc.CoprocessorRpcChannel.callBlockingMethod(CoprocessorRpcChannel.java:73)
org.apache.hadoop.hbase.coprocessor.transactional.generated.TrxRegionProtos$TrxRegionService$BlockingStub.performScan(TrxRegionProtos.java:50273)
org.apache.hadoop.hbase.client.transactional.TransactionalScanner.next(TransactionalScanner.java:244)
org.apache.hadoop.hbase.client.AbstractClientScanner.next(AbstractClientScanner.java:70)
org.trafodion.sql.HTableClient$ScanHelper.call(HTableClient.java:286)
org.trafodion.sql.HTableClient$ScanHelper.call(HTableClient.java:284)
java.util.concurrent.FutureTask.run(FutureTask.java:262)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
java.lang.Thread.run(Thread.java:748). [2018-01-02 16:55:15]
*** ERROR[8448] Unable to access Hbase interface. Call to
ExpHbaseInterface::scanOpen returned error HBASE_OPEN_ERROR(-704). Cause:
org.apache.hadoop.hbase.TableNotFoundException: TRAFODION._MD_.AUTHS
org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegionInMeta(ConnectionManager.java:1404)
org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1199)
org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1179)
org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1136)
org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.getRegionLocation(ConnectionManager.java:971)
org.apache.hadoop.hbase.client.HRegionLocator.getRegionLocation(HRegionLocator.java:83)
org.apache.hadoop.hbase.client.HTable.getRegionLocation(HTable.java:569)
org.apache.hadoop.hbase.client.transactional.TransactionalTable.getRegionLocation(TransactionalTable.java:1115)
org.apache.hadoop.hbase.client.transactional.RMInterface.registerTransaction(RMInterface.java:349)
org.apache.hadoop.hbase.client.transactional.RMInterface.registerTransaction(RMInterface.java:393)
org.apache.hadoop.hbase.client.transactional.RMInterface.getScanner(RMInterface.java:592)
org.trafodion.sql.HTableClient.startScan(HTableClient.java:997). [2018-01-02
16:55:15]
*** ERROR[8448] Unable to access Hbase interface. Call to
ExpHbaseInterface::scanOpen returned error HBASE_OPEN_ERROR(-704). Cause:
org.apache.hadoop.hbase.TableNotFoundException: TRAFODION._MD_.OBJECTS_UNIQ_IDX
org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegionInMeta(ConnectionManager.java:1404)
org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1199)
org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.relocateRegion(ConnectionManager.java:1166)
org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.getRegionLocations(RpcRetryingCallerWithReadReplicas.java:303)
org.apache.hadoop.hbase.client.ScannerCallable.prepare(ScannerCallable.java:153)
org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.prepare(ScannerCallableWithReplicas.java:372)
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:124)
org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:65)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
java.lang.Thread.run(Thread.java:748). [2018-01-02 16:55:15]
and then I checked the table TRAFODION._MD_.OBJECT_UNIQ_IDX on other's
database, and I found none.
But there is a index with the same name for metadata table
TRAFODION._MD_.OBJECTS in CmpSeabaseDDLmd.h.
static const QString seabaseObjectsUniqIdxIndexDDL[] =
{
{" create unique index " SEABASE_OBJECTS_UNIQ_IDX" on "
TRAFODION_SYSCAT_LIT".\"" SEABASE_MD_SCHEMA"\"." SEABASE_OBJECTS" "},
{" ( "},
{" object_uid "},
{" ) "},
{" attribute hbase format "},
{" ; "}
};
static const QString seabaseObjectsUniqIdxDDL[] =
{
{" create table " SEABASE_OBJECTS_UNIQ_IDX" "},
{" ( "},
{" \"OBJECT_UID@\" largeint not null not serialized, "},
{" catalog_name varchar(256 bytes) character set utf8 not null not
serialized, "},
{" schema_name varchar(256 bytes) character set utf8 not null not
serialized, "},
{" object_name varchar(256 bytes) character set utf8 not null not
serialized, "},
{" object_type char(2) character set iso88591 not null not serialized "},
{" ) "},
{" primary key (\"OBJECT_UID@\") "},
{" attribute hbase format "},
{" ; "}
};
In the source code, I found that there is a table and a index, with the same
name, is that correct?
But in trafci, they cannot be created with identical name.
Back to the the initialization issue, before my adding the field, it is all
right. So I guess have I broke some procedure?
like there is a order in metadata table creation, and one failed, causing the
following failing, and absent.
If so, is the order that in array allMDtablesInfo? How can I check the result
of each creation, i.e. success or failure?
Thanks.
---
Regards,
Wenjun Zhu.