hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ted Yu <yuzhih...@gmail.com>
Subject Re: how to Dynamic load of Coprocessors
Date Fri, 22 Jul 2016 11:48:10 GMT
w.r.t. the DoNotRetryIOException, can you take a look at region server log
where testTbl region(s) was hosted ?

See if there is some clue why the sanity check failed.

Thanks

On Fri, Jul 22, 2016 at 1:12 AM, Ma, Sheng-Chen (Aven) <
shengchen.ma@esgyn.cn> wrote:

> Hi all:
> I want to dynamic add coprocessor in order to not restart hbase.
>
> Following is my code:
>         Path path = new Path("/coprocessor_jars");
>         FileSystem fs = FileSystem.get(conf);
>         FileStatus[] status = fs.listStatus(path);
>         Path[] listedPaths = FileUtil.stat2Paths(status);
>         for (Path p : listedPaths) {
>             if(p.getName().contains("test.jar")){
>                 hdfsPath = p;
>             }
>         }
>         HBaseAdmin hadmin = new HBaseAdmin(conf);
>         HTableDescriptor tableDesc =
> hadmin.getTableDescriptor("testTbl".getBytes());
>
> tableDesc.addCoprocessor("org.apache.hadoop.hbase.coprocessor.transactional.TestRegionEndpoint",
> hdfsPath,
>                 Coprocessor.PRIORITY_USER, null);
>         //
> tableDesc.removeCoprocessor("org.apache.hadoop.hbase.coprocessor.transactional.TrxRegionEndpoint");
>         for (Entry<ImmutableBytesWritable, ImmutableBytesWritable> entry :
> tableDesc.getValues().entrySet()) {
>             System.out.println(Bytes.toString(entry.getKey().get()) + " =
> " + Bytes.toString(entry.getValue().get()));
>         }
>         hadmin.disableTable("testTbl".getBytes());
>         hadmin.modifyTable("testTbl", tableDesc);
>         hadmin.enableTable("testTbl");
>
> the syso print : coprocessor$1 = hdfs://
> 192.168.0.17:17400/coprocessor_jars/test.jar|org.apache.hadoop.hbase.coprocessor.transactional.TestRegionEndpoint|1073741823|
>
> and the remote side return Exception:
> org.apache.hadoop.hbase.DoNotRetryIOException:
> org.apache.hadoop.hbase.DoNotRetryIOException: Class
> org.apache.hadoop.hbase.coprocessor.transactional.TestRegionEndpoint cannot
> be loaded Set hbase.table.sanity.checks to false at conf or table
> descriptor if you want to bypass sanity checks
>
> I use hbase 1.2 and the test.jar is not under hbase/lib, I just put the
> test.jar in hdfs.
>
> If I add test.jar to hbase/lib but not restart hbase, the upon code still
> throw same exception.
> If I add test.jar to hbase/lib and restart hbase, the upon code will exec
> successful.
>
> But my requirement is not restart hbase.
>
> Is there someone can give me a favor.
>
> Thanks
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message